Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 server 如何在不删除SQL Server中的时间的情况下比较日期时间_Sql Server - Fatal编程技术网

Sql server 如何在不删除SQL Server中的时间的情况下比较日期时间

Sql server 如何在不删除SQL Server中的时间的情况下比较日期时间,sql-server,Sql Server,如何在不删除时间的情况下比较SQL Server中的2个日期时间值?我只找到了他们将小时、分钟和秒指定为0的答案,但对于我正在执行的过程,比较小时也很重要 例如,我有以下两个日期,2020-02-07 12:14:39.997和2020-02-06 10:20:51.237。当试图比较第一个日期是否小于第二个日期时,第一个日期确实小于第二个日期,这是不正确的。您可以如下所示比较这两个日期 declare @firstDate datetime= '2020-02-07 12: 14: 39.99

如何在不删除时间的情况下比较SQL Server中的2个日期时间值?我只找到了他们将小时、分钟和秒指定为0的答案,但对于我正在执行的过程,比较小时也很重要


例如,我有以下两个日期,
2020-02-07 12:14:39.997
2020-02-06 10:20:51.237
。当试图比较第一个日期是否小于第二个日期时,第一个日期确实小于第二个日期,这是不正确的。

您可以如下所示比较这两个日期

declare @firstDate datetime= '2020-02-07 12: 14: 39.997'
declare @secondDate datetime = '2020-02-06 10: 20: 51.237'

if(@firstDate > @secondDate)
begin
    Select 'First date is greater' as [Decision]
end
else
begin
    Select 'Second date is greater' as [Decision]
end

您可以比较两个日期,如下所示

declare @firstDate datetime= '2020-02-07 12: 14: 39.997'
declare @secondDate datetime = '2020-02-06 10: 20: 51.237'

if(@firstDate > @secondDate)
begin
    Select 'First date is greater' as [Decision]
end
else
begin
    Select 'Second date is greater' as [Decision]
end

为什么日期时间的格式是
yyyy-mm-dd hh:mi:ss.mmm
(注意
hi
mi
后面的空格)?这意味着它们被存储为
varchar
。首先修复设计,然后担心比较。它们保存在ODBC规范(毫秒)中,默认为time、date、datetime2和datetimeoffsetDate和time数据类型没有格式@pete,它们是二进制值。因此,如果说“我使用的格式是yyyy-mm-dd hh:mi:ss.mmm(24小时)”,您就开始说“我不使用日期和时间数据类型来存储日期和时间。”SSMS等应用程序中的默认显示格式是
yyy-mm-dd hh:mm:ss.nnnnnnn
,小时和分钟后没有空格。@pete澄清,数据库中列的数据类型是什么?请显示您正在使用的代码,该代码告诉您第一个日期时间值小于第二个日期时间值。为什么日期时间的格式为
yyyy-mm-dd hh:mi:ss.mmm
(请注意
hi
mi
之后的空格)?这意味着它们被存储为
varchar
。首先修复设计,然后担心比较。它们保存在ODBC规范(毫秒)中,默认为time、date、datetime2和datetimeoffsetDate和time数据类型没有格式@pete,它们是二进制值。因此,如果说“我使用的格式是yyyy-mm-dd hh:mi:ss.mmm(24小时)”,您就开始说“我不使用日期和时间数据类型来存储日期和时间。”SSMS等应用程序中的默认显示格式是
yyy-mm-dd hh:mm:ss.nnnnnnn
,小时和分钟后没有空格。@pete澄清,数据库中列的数据类型是什么?请显示您正在使用的代码,该代码告诉您第一个日期时间值小于第二个日期时间值。