[英]How to query today's date in SQL when date not properly formatted
我有一台將日志生成到數據庫的設備。
我需要查詢數據庫
Query1 =給我來自table01的TODAY的所有記錄和列
Query2 =給我表01中YESTERDAY的所有記錄和列
我遇到的問題是日期字段的格式不完全是mm-dd-yyyy
。
字段是:
datetime, device, controlnumber, result
datetime字段輸出的數據看起來像這樣yyyy-mm-ddTHH:MM:SS
(不知道為什么有一個T
可能只是簡單地說這是時間)。
2018-07-16T13:34:00
2018-07-16T18:15:00
2018-07-16T18:33:00
2018-07-16T18:50:00
2018-07-16T19:02:00
任何人都可以快速幫助我(我知道這是不對的):
select * from table01
where datetime = Today()
and datetime = Yesterday()
Order by controlnumber
在標准SQL中,您今天需要這樣做:
select t.*
from table01 t
where t.datetime >= current_date and
t.datetime < current_date + interval '1 day'
Order by controlnumber;
昨天類似:
select t.*
from table01 t
where t.datetime >= current_date - interval '1 day' and
t.datetime < current_date
Order by controlnumber;
僅僅因為這是標准SQL並不意味着所有數據庫都支持它。 但是,盡管語法可能有所不同,但所有數據庫都支持日期算術。
我認為最簡單的方法是使用DATEDIFF()函數,如下所示:
SELECT * FROM Ttable
WHERE DATEDIFF(day,Ttable.DatetimeColumn ,GETDATE()) = 0 -- For today
SELECT * FROM Ttable
WHERE DATEDIFF(day,Ttable.DatetimeColumn ,GETDATE()) = 1 -- For yesterday
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.