2016-05-25 4 views
1

Ich muss die Datensätze zwischen gestern Datum beginnend 00:00:00 bis Ende der Stunde 23:59:59.Datum mit 23:59:59 in Bienenstock

bekam ich das gestern Datum als

select from_unixtime(unix_timestamp()-1*60*60*24, 'dd-MMM-yy'); 

jedoch folgt, ich bin nicht sicher, wie man 23.59.59 in Bienenstock zu erhalten.

Wie this SO (1 Jahr alt) Antwort, es ist erreichbar mit Bienenstock UDF.

Ich frage mich, ob es eine einfache Möglichkeit gibt, wie eine eingebaute Funktion zu verwenden.

Antwort

1

Wir müssen spielen nur mit dem Unix-Zeit

select 
from_unixtime(datediff(current_date, '1970-01-01')*3600*24-3600, 'dd-MM-yyyy HH:mm:ss') 
as start_time, 
from_unixtime(datediff(current_date, '1970-01-00')*3600*24-3600-1, 'dd-MM-yyyy HH:mm:ss') 
as end_time 

Und wir bekommen: enter image description here

+0

Ich bemerkte, dass obige Abfrage START_TIME als 24-05-2016 19.00.00 und end_time als 25- gibt 05-2016 18:59:59. Ich habe die Abfrage ein wenig wie folgt optimiert, um die richtige start_time (24-05-2016 00:00:00) und end_time (25-05-2016 23:59:59) zu erhalten. 'Wählen Sie aus_Untime (datediff (current_date,' 1970-01-01 ') * 60 * 60 * 24-72000,' TT-MM-JJJJ HH: mm: ss ') als Startzeit, from_unitime (datediff (current_date,' 1970-01-00 ') * 60 * 60 * 24 + 14399,' TT-MM-JJJJ HH: mm: ss ') als end_time;' – Arun

+0

@Arun Es scheint, dass es von der Zeitzone abhängt! Danke, ich habe etwas Neues gelernt. – 54l3d

+0

Können Sie die Abfrage mit Zeitzone aktualisieren und testen. Ich kann als richtige Antwort markieren. danke für Ihre Hilfe. – Arun

Verwandte Themen