Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在where子句中将日期转换为mm/dd/yyyy_Sql_Sql Server_Date - Fatal编程技术网

Sql 如何在where子句中将日期转换为mm/dd/yyyy

Sql 如何在where子句中将日期转换为mm/dd/yyyy,sql,sql-server,date,Sql,Sql Server,Date,我今天添加了数千条记录,但在一天中的不同时间,我能看到它们的唯一方法是按ADDdate DESC订购 但是,我需要使用带有日期的where子句在其中更新一个particulr字段的update语句 问题是,由于它们都是在不同的时间输入的,我如何才能转换/转换此字段,以便我只能执行以下操作 基本上,每个添加的记录都有一个datetime格式的AddDate字段,我希望它转换为mm/dd/yyyy格式 Update SpecialField SET SpecialField = NULL Where

我今天添加了数千条记录,但在一天中的不同时间,我能看到它们的唯一方法是按ADDdate DESC订购

但是,我需要使用带有日期的where子句在其中更新一个particulr字段的update语句

问题是,由于它们都是在不同的时间输入的,我如何才能转换/转换此字段,以便我只能执行以下操作

基本上,每个添加的记录都有一个datetime格式的AddDate字段,我希望它转换为mm/dd/yyyy格式

Update SpecialField
SET SpecialField = NULL
Where ADDdate = '09/18/2017'

请帮忙。谢谢。

如果您试图更新2017年9月18日
ADDdate
的所有记录(无论何时),您可以执行以下操作:

UPDATE SpecialField, SpecialField2
SET SpecialField = NULL
WHERE ADDdate > '09/18/2017' AND ADDdate < '09/19/2017'
更新特殊字段,特殊字段2
设置SpecialField=NULL
其中ADDdate>2017年9月18日,ADDdate<2017年9月19日

您应该始终使用标准日期格式。我更喜欢YYYY-MM-DD,尽管SQL Server稍微偏爱YYYYMMDD

这里有两种方法:

Update SpecialField
    set SpecialField = NULL
    where ADDdate >= '2017-09-18' and ADDdate < '2017-09-19';
在这两种情况下,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))
其中addDate>=cast(getdate()作为日期)
和addDate
编辑

这与Gordon的答案有一些相似之处,因为它使用了
cast(getdateas date)
。不同之处在于,他过滤的函数结果往往会降低性能。

可能重复的
where addDate >= cast(getdate() as date)
and addDate < dateadd(day, -1, cast(getdate() as date))