簡體   English   中英

當日期格式不正確時,如何在SQL中查詢今天的日期

[英]How to query today's date in SQL when date not properly formatted

我有一台將日志生成到數據庫的設備。

我需要查詢數據庫

  1. Query1 =給我來自table01的TODAY的所有記錄和列

  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM