Czy można MySQL zmusić, żeby wszelkie pola typu DATETIME zawsze zwracał w określonym formacie?


Widzisz wersję archiwalną tematu "Czy można MySQL zmusić, żeby wszelkie pola typu DATETIME zawsze zwracał w określonym formacie?" z forum pl.comp.bazy-danych



Strona 1 z 11


t0mek - 28 Paź 2008, 08:03

Witam,
Czy można MySQL zmusić, żeby wszelkie pola typu DATETIME zawsze zwracał w
określonym formacie?
Nie chce mi się każdorazowo pisać SELECT DATE_FORMAT(...) skoro zawsze chcę
mieć wszelkie daty w tym samym formacie.
Nie można wysłać jakiegoś polecenia w stylu "SET NAMES", żeby MySQL wiedział
jaki format ma zawsze zwracać?

Pozdrawiam,
t0mek



wloochacz - 28 Paź 2008, 09:31


Witam,
Czy można MySQL zmusić, żeby wszelkie pola typu DATETIME zawsze zwracał
w określonym formacie?
Nie chce mi się każdorazowo pisać SELECT DATE_FORMAT(...) skoro zawsze
chcę mieć wszelkie daty w tym samym formacie.
Nie można wysłać jakiegoś polecenia w stylu "SET NAMES", żeby MySQL
wiedział jaki format ma zawsze zwracać?

A po co Ci to?
Od formatowania danych jest aplikacja, nie serwer.
Więc zrób to tam gdzie należy.

t0mek - 28 Paź 2008, 09:57


A po co Ci to?
Od formatowania danych jest aplikacja, nie serwer.
Więc zrób to tam gdzie należy.



Ale MySQL zwraca już sformatowaną datę. Więc muszę ja wtedy konwertować np.
na uniksowy znacznik i ze znacznika na wybrany format.
Gdyby MySQL zwracał uniksowy znacznik to byłoby spoko, ale zwraca zwykłego
stringa w jakimś tam formacie daty.

Pozdrawiam,
t0mek


Artur Muszyński - 28 Paź 2008, 10:40



| A po co Ci to?
| Od formatowania danych jest aplikacja, nie serwer.
| Więc zrób to tam gdzie należy.

Ale MySQL zwraca już sformatowaną datę. Więc muszę ja wtedy konwertować
np. na uniksowy znacznik i ze znacznika na wybrany format.



Nie musisz na unixowy znacznik. Nie wiem czego tam używasz, ale coś w
rodzaju prostego połączenia sscanf+vsprintf załatwi problem.
Gdyby MySQL zwracał uniksowy znacznik to byłoby spoko, ale zwraca
zwykłego stringa w jakimś tam formacie daty.



Naprawdę taki drobiazg sprawia ci problem?

artur



porneL - 28 Paź 2008, 14:21


Ale MySQL zwraca już sformatowaną datę. Więc muszę ja wtedy konwertować  
np. na uniksowy znacznik i ze znacznika na wybrany format.
Gdyby MySQL zwracał uniksowy znacznik to byłoby spoko, ale zwraca  
zwykłego stringa w jakimś tam formacie daty.



UNIX_TIMESTAMP()

t0mek - 28 Paź 2008, 16:59


Naprawdę taki drobiazg sprawia ci problem?



Nie, ale:

1) w bazie siedzi to jako uniksowy znacznik albo coś podobnego
2) mysql konwertuje to na dziwny format i mi oddaje
3) php to bierze i konwertuje na inny format

Więc wychodzi na to, że pewne obliczenia są wykonywane niepotrzebnie, a tego
ja nie lubię. Więc już wolę zmusić MySQL, żeby mi od razu zwróciło w
odpowiednim formacie.

Pozdrawiam,
t0mek


t0mek - 28 Paź 2008, 17:01


| Ale MySQL zwraca już sformatowaną datę. Więc muszę ja wtedy konwertować
| np. na uniksowy znacznik i ze znacznika na wybrany format.
| Gdyby MySQL zwracał uniksowy znacznik to byłoby spoko, ale zwraca
| zwykłego stringa w jakimś tam formacie daty.

UNIX_TIMESTAMP()



Nie, nie, nie. Ja wiem jak otrzymać znacznik, ale mi chodzi o to, żebym mógl

SELECT * FROM costam
i żebym dostał datę albo w formacie takim, jaki ma być docelowy, albo w
postaci znacznik czasu.
A teraz dostaję jakiś beton.

Pozdrawiam,
t0mek


porneL - 28 Paź 2008, 17:25


Nie, nie, nie. Ja wiem jak otrzymać znacznik, ale mi chodzi o to, żebym  

SELECT * FROM costam
i żebym dostał datę albo w formacie takim, jaki ma być docelowy, albo w  
postaci znacznik czasu.
A teraz dostaję jakiś beton.



SELECT *, UNIX_TIMESTAMP(pole_daty) as pole_daty
Albo w PHPie użyj strtotime().

Jak bardzo upierasz się nad niepotrzebnymi optymalizacjami, które potem  
będą cię mściły, to składuj wszystkie daty jako int.


Piotr Keplicz - 29 Paź 2008, 04:50

t0mek:
1) w bazie siedzi to jako uniksowy znacznik albo coś podobnego
2) mysql konwertuje to na dziwny format i mi oddaje
3) php to bierze i konwertuje na inny format

Więc wychodzi na to, że pewne obliczenia są wykonywane niepotrzebnie, a
tego ja nie lubię. Więc już wolę zmusić MySQL, żeby mi od razu zwróciło w
odpowiednim formacie.



W przypadku PHP i jego przyzerowej obsługi typów wygodnie jest trzymać datę
w formacie znacznika uniksowego czyli INT - oczywiście o ile daty mieszczą
się w zakresie tegoż znacznika ;-)

.pk.


Artur Muszyński - 29 Paź 2008, 06:50


1) w bazie siedzi to jako uniksowy znacznik albo coś podobnego
2) mysql konwertuje to na dziwny format i mi oddaje



Dziwny? IMHO bardzo przyzwoity i typowy (prawie ISO).
3) php to bierze i konwertuje na inny format



Ja zawsze wyświetlam daty w formacie Y-m-d H:i:s, czyli identycznie jak
MySQL i większość innego oprogramowania (czasami konwertuję, żeby było
bez sekund). A jak ty chcesz wyświetlać?
Więc wychodzi na to, że pewne obliczenia są wykonywane niepotrzebnie, a
tego ja nie lubię. Więc już wolę zmusić MySQL, żeby mi od razu zwróciło
w odpowiednim formacie.



Oprócz robi wiele innych rzeczy, które można uznać za zbędne (np.
zmienia kodowanie znaków). To, co ty chcesz zrobić, to żadna
optymalizacja. Uzysk zerowy i dyskusyjny sens.

artur


t0mek - 29 Paź 2008, 11:47


Ja zawsze wyświetlam daty w formacie Y-m-d H:i:s, czyli identycznie jak
MySQL i większość innego oprogramowania (czasami konwertuję, żeby było bez
sekund). A jak ty chcesz wyświetlać?



Y-m-d, H:i :P
| Więc wychodzi na to, że pewne obliczenia są wykonywane niepotrzebnie, a
| tego ja nie lubię. Więc już wolę zmusić MySQL, żeby mi od razu zwróciło w
| odpowiednim formacie.

Oprócz robi wiele innych rzeczy, które można uznać za zbędne (np. zmienia
kodowanie znaków). To, co ty chcesz zrobić, to żadna optymalizacja. Uzysk
zerowy i dyskusyjny sens.



Łe tam :P

Pozdrawiam,
t0mek


Rafal(sxat) - 12 Lis 2008, 08:53

Czy można MySQL zmusić, żeby wszelkie pola typu DATETIME zawsze zwracał w
określonym formacie?
Nie chce mi się każdorazowo pisać SELECT DATE_FORMAT(...) skoro zawsze

chcę

tak mozna, sprawdz liste show variables like 'date%';

pozdrawiam
sxat

---
http://www.sxar.pl/ oprogramowanie dla firm,



Strona 1 z 11



Podobne wątki

mysql kiedy NULL a kiedy NOTNULL
Zadanie PHP/MySQL. Jak się do tego zabrać. Potrzebuję nakierowania.
wolny select z dwoch tabeli (mySQL)
mySQL wczytywanie danych z dwu tablic.
MySQL nie wykorzystuje RAMu, powolne zapytania
mysql, php, połączenie i wyświetlanei na ekranie
MySQL - wiek na podstawie roku urodz
MySQL - brak mozliwosci usunięcia tabeli
Call to undefined function: mysql_connect()
PHP i mySQL w duzej firmie - czy to legalne ??
Wydajność bazy danych (MySQL, PgSQL)
Licencja MySQL a komercyjny serwis WWW
Polskie znaki w MySQL 4.1.12
Mysql i zmienna open_table
MySQL, zliczanie wierszy po GROUP BY
Lista wiadomości z for internetowych !! Indeks
Odnośniki,