Zastanawiam się tylko, jak wstawić datę 01.01.2014 do wyroczni
Próbowałem następujących, ale bezskutecznie
INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'syyyy/mm/dd'))
Jestem pewien, że przeoczyłem coś dość oczywistego, więc świeże spojrzenie na to naprawdę pomoże.
Dzięki!
3 odpowiedzi
Nie widzę problemu z twoją składnią. Mi to pasuje:
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as xxx
SQL> CREATE TABLE tt (d DATE);
Table created
SQL> INSERT INTO tt VALUES (to_date('-4700/01/01','syyyy/mm/dd'));
1 row inserted
SQL> SELECT to_char(d, 'MM/DD/YYYY BC') FROM tt;
TO_CHAR(D,'MM/DD/YYYYBC')
-------------------------
01/01/4700 BC
SQL>
Jaki dokładnie masz problem? Jaka wersja Oracle?
Musisz użyć specyfikatora formatu BC lub SYYYY na wyjściu, w przeciwnym razie otrzymasz nieprawidłowe daty:
SQL> select * from tt;
D
-----------
00-h:mm:ss
SQL>
INSERT INTO person(birth_date)
VALUES(TO_DATE('4000/01/01 BC', 'yyyy/mm/dd bc'))
SQL Error: ORA-01856: BC/B.C. or AD/A.D. required 01856. 00000 - "BC/B.C. or AD/A.D. required"
Próbować
INSERT INTO person(birth_date) VALUES(TO_DATE('-4700/01/01', 'yyyy/mm/dd'))
Lub możesz użyć notacji BC - zobacz http://rwijk.blogspot.com/2008 /10/rok-zero.html
SQL Error: ORA-01841: (full) year must be between -4713 and +9999, and not be 0
. powinieneś użyć obrazka w formacie 'syyyy/mm/dd'
Podobne pytania
Powiązane pytania
Nowe pytania
sql
Structured Query Language (SQL) to język służący do wykonywania zapytań w bazach danych. Pytania powinny zawierać przykłady kodu, strukturę tabeli, przykładowe dane i znacznik używanej implementacji DBMS (np. MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 itp.). Jeśli Twoje pytanie dotyczy wyłącznie konkretnego DBMS (używa określonych rozszerzeń / funkcji), użyj zamiast tego tagu tego DBMS. Odpowiedzi na pytania oznaczone tagiem SQL powinny używać standardu SQL ISO / IEC.