Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]zaokrąglenie timestamp i wyszukiwanie w bazie
szybki
post 2.10.2015, 10:17:07
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


Huh jakiś geniusz w bazie zapisał date jako timestamp, niestety nie wiem jak ją mam wyszukać skoro jest niepoprawna.

  1. echo 'data w bazie 1463695200';
  2. echo 'data zwrócona przez DataTime w php 1463616000';


Jak widać wyniki są nieco różne, jak moge je wyszuka w mysql? Czy jakoś to zaokrąglić?

Obie zwracają dobrze aktualny dzień.

Ten post edytował szybki 2.10.2015, 10:18:54
Go to the top of the page
+Quote Post
nospor
post 2.10.2015, 10:19:34
Post #2





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6296
Dołączył: 27.12.2004




Cytat
jakis geniusz w bazie zapisał date jako timestamp

Huh, a inny geniusz nie wie, ze timestamp jest jak najbardziej poprawnym zapisem daty w bazie wink.gif

A do czego chcesz zaokrąglac? Jak szukasz dat na poziomie dni, to zaokraglaj do dni. w manualu myslq w dziale "times functions" masz wszystko czego potrzebujesz


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

"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
redeemer
post 2.10.2015, 10:20:00
Post #3





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


https://dev.mysql.com/doc/refman/5.5/en/dat...-functions.html


--------------------
Go to the top of the page
+Quote Post
Rysh
post 2.10.2015, 10:20:55
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Przecież możesz użyć from_unixtime() i TIMESTAMP()


--------------------
Go to the top of the page
+Quote Post
szybki
post 2.10.2015, 11:20:53
Post #5





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


  1. WHERE start_date = UNIX_TIMESTAMP("2007-12-04")


Jednak nadal data nie jest wyszukana
Go to the top of the page
+Quote Post
Pyton_000
post 2.10.2015, 12:37:04
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


facepalmxd.gif A zajrzałeś do manuala co ta funkcja robi? Bo chyba nie koniecznie
Go to the top of the page
+Quote Post
szybki
post 5.10.2015, 07:43:05
Post #7





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


Tak, jednak nie za bardzo wiem jak w sql wyszukać datę jeśli w formularzu wpiszę 2015-01-01, a co jeśli w sql zapisany jeest timestamp z godziną? To jak to przekonwertować?

  1. AND start_date >= unix_timestamp("2007-12-05") AND start_date < unix_timestamp("2007-12-05")


Nie wyszukuje daty, pomimo że takowa istnieje. Jeśli dam

  1. AND start_date = unix_timestamp("2007-12-05")


Również.

Ten post edytował szybki 5.10.2015, 08:21:31
Go to the top of the page
+Quote Post
Daimos
post 5.10.2015, 10:27:21
Post #8





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


oszalałeś, zapoznaj się z formatami daty, timestamp to data, możesz np. robić tak:
  1. AND DATE(start_date) >= "2007-12-05" AND DATE(start_date) < "2007-12-05"

i zakładam, że start date to timestamp. Oczywiście tutaj możesz użyć też between i dostawić godziny, jeśli masz indeks, to będzie szybciej:

  1. WHERE start_date BETWEEN '2007-12-05 00:00:00' AND '2007-12-05 23:59:59'


Cytat
Huh jakiś geniusz w bazie zapisał date jako timestamp, niestety nie wiem jak ją mam wyszukać skoro jest niepoprawna.


"Geniusz", to zapisuje daty w formie inta. A później nic nie można z tym zrobić. Zajrzyj do manuala mysql od czasu do czasu

Ten post edytował Daimos 5.10.2015, 10:35:27


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
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: 27.04.2024 - 03:27