Mysql a timestamp – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Mysql a timestamp – MySQL – Fórum – Programujte.comMysql a timestamp – MySQL – Fórum – Programujte.com

 

bach0
Duch
10. 11. 2021   #1
-
0
-

Prosím o pomoc o formulování selectu

Dobrý den mám tabulku místo klasického datetime je timestamp.

Potřebuji vyfiltrovat všechny záznamy od aktuálního data a času mínus 12hodin - s tím date ve formátu timestamp si nedokážu poradit.

Tabulka vypadá takto:

id            date                    tepl     cidlo

1376       1636526701       218     1

Nahlásit jako SPAM
IP: 185.162.24.–
10. 11. 2021   #2
-
+1
-
Zajímavé
Kit +

Jaký je datový typ sloupce date? Myslím v definici tabulky. Tohle jako timestamp nebo datetime nevypadá. Spíš to vypadá na nějaký uživatelský formát udělaný z int. Mě klient k MySQL vypisuje timestamp vždy jako 2020-05-28 15:27:56. Dej více informací o definici tabulky a způsobu, jak údaj vzniká.

Pokud je to opravdu timestamp - myslím tím datový typ MySQL, snažil bych se aby ve výpisu byl ve formátu data a času a pracoval s ním podle toho., tzn že lze použít "časové"  funkce  https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html. Od daného data a času bych odečetl 12 hodin (subtract timespan from timestamp popř datetime) a pak chtěl data u kterých je datum a čas větší rovno vypočtenému. Pokud je to int představující timestamp, odečetl bych od něj číslo odpovídající 12 hodinám a pak chtěl data u kterých je timestamp větší roven vypočtenému.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
bach0
Duch
10. 11. 2021   #3
-
0
-

#2 hlucheucho
Ano je to typ INT , nějak elegantněji by to někdo nevěděl? potřeboval bych příklad, tak zase sběhlý v tom nejdem, děkuji.

#2 hlucheucho

Nahlásit jako SPAM
IP: 185.194.47.–
10. 11. 2021   #4
-
0
-

Ano je to typ INT

V tom případě je potřeba vědět, podle jakých pravidel číslo vyjadřuje datum a čas. Na základě těchto pravidel pak půjde určit číslo, které vyjadřuje timespan = 12 hod a jak ho odečíst. Současně půjde určit způsob porovnávání.

Osobně bych se vyhnul "své" implementaci v případech, kdy databáze má "hotový" datový typ. Výhody jsou zjevné: kdekdo bude vědět jak s tím pracovat nebo to alespoň najít v dokumentaci a na fórech.

Jestli je to možné, zvol pro sloupec datový typ Timestamp nebo DateTime a uprav vkládání dat do něj. Pokud nemáš možnost toto změnit, zjisti pravidla, podle kterých číslo vyjadřuje datum a čas.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
10. 11. 2021   #5
-
0
-

Ještě pozn. proč obecné odpovědi: uživatelský timestamp může vznikat podle "svérázných" pravidel bez ohledu na jakýkoliv standard.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
gna
~ Anonymní uživatel
1849 příspěvků
10. 11. 2021   #6
-
0
-

Je to unixový timestamp a na tom odkazu od HU jsou dvě funkce -- FROM_UNIXTIME a UNIX_TIMESTAMP -- kterými si můžeš hodnoty zkonvertovat a pak libovolně porovnávat.

Nahlásit jako SPAM
IP: 213.211.51.–
bach0
Duch
11. 11. 2021   #7
-
0
-

#6 gna
provedl jsem to nakonec úplně jinak...

stačilo v podstatě toto:

$datcas = date(('Y-m-d H:i:s'),strtotime('-12 hour'));
$timestamp = strtotime($datcas);

Nahlásit jako SPAM
IP: 185.162.24.–
11. 11. 2021   #8
-
0
-

 Pokud je to UNIXový TIMESTAMP, pak by dotaz mohl vypadat takto:

SELECT id, FROM_UNIXTIME(date) AS datum, tepl AS teplota, cidlo FROM table_name WHERE FROM_UNIXTIME(date) >= DATE_SUB(FROM_UNIXTIME(date), INTERVAL 12 HOUR);

Nezkoušel jsem to.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

ORDER BY timestamp — založil Míša

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý