Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przechowywanie niekompletnych dat, MySQL 5.7
sabat24
post 11.01.2018, 12:57:29
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Chcę zapisać do bazy datę: "1900-12-00" dla pola DATE. Mój sql_mode składa się wyłącznie z ALLOW_INVALID_DATES - wedle dokumentacji baza powinna przyjąć taką datę, ale z jakiegoś powodu konwertuje mi to na 1899-11-30

Jest jakieś inne ustawienie w bazie, które wymusza taką konwersję?
Go to the top of the page
+Quote Post
nospor
post 11.01.2018, 12:59:35
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Mozna spytac czemu 00? Byc moze zle podchodzisz do sprawy?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sabat24
post 11.01.2018, 13:04:16
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Co ciekawe powyższy wynik otrzymuję wpisując zapytanie w Laravelu przez eloquent model. W przypadku, gdy zrobię to bezpośrednio na bazie to już otrzymuję inny rok: 1900-11-30

Co do "00" - nie zawsze znana jest data dzienna, a nie zawsze nawet miesięczna. Tylko rok jest pewny, że będzie podany. Natomiast taką mam zastaną architekturę, więc wolałbym nie zmieniać mechanizmu w serwisie.
Go to the top of the page
+Quote Post
aras785
post 11.01.2018, 13:55:10
Post #4





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


To po prostu dodaj 01 i koniec Twoich problemów... Porównywać zawsze możesz < zamiast <=
Go to the top of the page
+Quote Post
sabat24
post 11.01.2018, 13:58:36
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Nie mogę, gdyż chcę odróżnić daty 1900-12-00 od 1900-12-01, co oznacza: data dzienna nieznana od 1 grudnia 1900. Aczkolwiek ten problem będzie już rozwiązywał autor struktury serwisu.

Mi bardziej chodzi o ciekawość, jakie ustawienia powoduje wymuszenie konwertowania przez bazę daty i jak to wyłączyć. Nie mogę tego znaleźć w docu.
Go to the top of the page
+Quote Post
aras785
post 11.01.2018, 14:11:15
Post #6





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Sprawdziłem u siebie na MYSQL 5.6.26 i data normalnie jest zapisywana (typ kolumny DATE)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 20:44