Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zmienic format daty w mysql??
Forum PHP.pl > Forum > Bazy danych > MySQL
mk.gda
pole DATE zapisuje date w formacie yyyy-mm-dd. jak zmienic na dd-mm-yyyy??
msulik
http://www.mysql.com/doc/en/Date_and_time_...ns.html#IDX1325
czyli
[sql:1:68f12be427]SELECT DATE_FORMAT(kolumna_daty, '%d-%m-%Y') AS moja_data FROM moja_tabela[/sql:1:68f12be427]
mk.gda
[sql:1:5794468d1f]
$zapytanie = "SELECT data FROM tabela WHERE data BETWEEN '%$data_od%' AND '%$data_do%'";
[/sql:1:5794468d1f]

to dziala tylko wtedy kiedy podam zarowno data_od jak i data_do. chcialbym zeby dzialalo rowniez wtedy kiedy w formularzu na stronie pola te pozostawie puste badz wypelnie tylko jedno z nich czyli jezeli:
-oba puste to rezultat: pokazuje wszystkie rekordy,
-podam tylko data_od to rezultat: pokazuje wszystkie rek. od podanej dat itd.
prosze o pomoc.
druga sprawa to ze w formularzu na stronie musze date podac jako: yyyy-mm-dd bo tak jest zapisywana w bazie a chcialbym zeby bylo po Polsku czyli dd-mm-rrrr albo nawet zebym mogl date podac jako:
dd.mm.rrrr,
dd-mm-rrrr,
dd/mm/rrrr?
jak to zrobic??
prosze o pomoc.
DeyV
Musisz sobie pomóc php, przy tworzeniu tego zapytania.
1. jeśli podano datę od, dodaj do zapytania and data >' xx '
2. jeśli podano datę do, dodaj do zapytania and data <' yyy '

Jeśli chcesz podawać daty w innym formacie - tu również php może ci pomóc.
Najpierw przy pomocy funkcji do zamiany znaków na inne, np. [manual:57cb4f1b6b]strtr [/manual:57cb4f1b6b] zamień w otrzymanych od użytkownika datach wszystkie spacje, / , , kropki itp. na -
Następnie, przy pomocy [manual:57cb4f1b6b]explode[/manual:57cb4f1b6b] rozbijasz otrzymany string, a z otrzymanej tablicy tworzysz string z datą sformatowaną w ten sposób, aby MySQL to rozumiał (warto napisać sobie funkcję, która będzie to robić)
Otrzymane daty ładujesz do zapytania.
spenalzo
http://www.mysql.com/doc/en/Date_and_time_..._functions.html
Cytat
STR_TO_DATE(str,format)
   This is the reverse function of the DATE_FORMAT() function. It takes a string str, and a format string format, and returns a DATETIME value. The date, time, or datetime values contained in str should be given in the format indicated by format. For the specifiers that can be used in format, see the table in the DATE_FORMAT() function description. All other characters are just taken verbatim, thus not being interpreted. If str contains an illegal date, time, or datetime value, STR_TO_DATE() returns NULL.

mysql> SELECT STR_TO_DATE('03.10.2003 09.20', '%d.%m.%Y %H.%i')
       -> 2003-10-03 09:20:00
mysql> SELECT STR_TO_DATE('10rap', '%crap')
       -> 0000-10-00 00:00:00
mysql> SELECT STR_TO_DATE('2003-15-10 00:00:00', '%Y-%m-%d %H:%i:%s')
       -> NULL



dd.mm.rrrr,
[sql:1:3541d7af31]SELECT STR_TO_DATE('03.10.2003', '%d.%m.%Y')[/sql:1:3541d7af31]

dd-mm-rrrr,
[sql:1:3541d7af31]SELECT STR_TO_DATE('03-10-2003', '%d-%m-%Y')[/sql:1:3541d7af31]

dd/mm/rrrr?
[sql:1:3541d7af31]SELECT STR_TO_DATE('03/10/2003', '%d/%m/%Y')[/sql:1:3541d7af31]
mk.gda
Sluchajcie dzieki za podpowiedzi ale jeszcze raz postawie problem bo nie moge sobie poradzic.

Otoz w html mam tak:
<form method="GET" action="szukaj.php">
<input name="data_od" type="text">
<input name="data_do" type="text">
<input type="submit" name="ok">
</form>

dalej mam:
[php:1:c25243b4a8]<?php
$zapytanie = "SELECT data FROM tabela WHERE data BETWEEN '%$data_od%' AND '%$data_do%'";
?>[/php:1:c25243b4a8]

dopisalem: AND data>' xx ' i AND data<"yyy" ale nie dziala i nie bardzo to rozumiem. czy moglibyscie napisac w calosci (kod) jak to zrobic.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.