[英]How do i convert a date to mm/dd/yyyy in my where clause
我有成千上萬條今天添加但在一天中不同時間記錄的記錄,唯一能看到它們的方法是我是否按ORDER BY ADDdate DESC
但是,我需要在其中要使用WHERE子句和日期來更新particulr字段的地方聲明一條更新語句
問題是,由於它們都是在不同的時間輸入的,因此我如何才能將該字段進行CAST / CONVERT,以便我只能做類似的事情。
基本上每個添加的記錄都有datetime格式的AddDate字段,我希望將其轉換為mm / dd / yyyy格式。
Update SpecialField
SET SpecialField = NULL
Where ADDdate = '09/18/2017'
請幫忙。 謝謝。
如果您嘗試更新ADDdate
為9/18/2017的所有記錄(無論時間如何),則可以執行以下操作:
UPDATE SpecialField, SpecialField2
SET SpecialField = NULL
WHERE ADDdate > '09/18/2017' AND ADDdate < '09/19/2017'
您應該始終使用標准日期格式。 我更喜歡YYYY-MM-DD,盡管SQL Server對YYYYMMDD略有偏好。
有兩種方法:
Update SpecialField
set SpecialField = NULL
where ADDdate >= '2017-09-18' and ADDdate < '2017-09-19';
>=
表示第一個值, <
表示第二個值。
要么
Update SpecialField
set SpecialField = NULL
where cast(ADDdate as date) = '2017-09-18';
在這兩種情況下,SQL Server都將使用索引,因此它們都是表達邏輯的合理方法。
如果您特別想要今天的日期,請使用getdate()
,例如:
Update SpecialField
set SpecialField = NULL
where cast(ADDdate as date) = cast(getdate() as date);
如果這是一個經常性的要求,您根本不必擔心鍵入日期。
where addDate >= cast(getdate() as date)
and addDate < dateadd(day, -1, cast(getdate() as date))
編輯
這與Gordon的答案有一些相似之處,因為它使用cast(getdate as date)
。 不同之處在於,他對趨向於降低性能的函數結果進行過濾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.