Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak zmienic format daty w mysql??
mk.gda
post 27.02.2004, 12:11:32
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.01.2004
Skąd: Gdańsk

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


pole DATE zapisuje date w formacie yyyy-mm-dd. jak zmienic na dd-mm-yyyy??
Go to the top of the page
+Quote Post
msulik
post 27.02.2004, 12:30:10
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 31.03.2002
Skąd: Toruń

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


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]
Go to the top of the page
+Quote Post
mk.gda
post 27.02.2004, 13:37:00
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.01.2004
Skąd: Gdańsk

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


[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.
Go to the top of the page
+Quote Post
DeyV
post 27.02.2004, 14:07:29
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




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.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
spenalzo
post 27.02.2004, 14:12:53
Post #5





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


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]


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

Go to the top of the page
+Quote Post
mk.gda
post 27.02.2004, 17:27:42
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.01.2004
Skąd: Gdańsk

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


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.
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: 14.08.2025 - 12:13