Sql server 2008 使用日期计算SQL Server中的列
我有一个计算列,当其他两列更新时,该列会更新,该列的公式为Sql server 2008 使用日期计算SQL Server中的列,sql-server-2008,date,Sql Server 2008,Date,我有一个计算列,当其他两列更新时,该列会更新,该列的公式为 SELECT(datediff(day,'2012-11-01 18:15:00.000','2012-10-22 11:59:58.000')) 它适用于所有其他日期,但当月份发生变化时,我会得到一个负值。如何确保不发生这种情况并获得正确的整数值?好的,有两个选项: 只需确保之前的日期始终是DATEDIFF SELECT DATEDIFF(DAY, '2012-11-01 18:15:00.000', '2012-10-22 11:
SELECT(datediff(day,'2012-11-01 18:15:00.000','2012-10-22 11:59:58.000'))
它适用于所有其他日期,但当月份发生变化时,我会得到一个负值。如何确保不发生这种情况并获得正确的整数值?好的,有两个选项:
DATEDIFF
SELECT DATEDIFF(DAY, '2012-11-01 18:15:00.000', '2012-10-22 11:59:58.000')
这会给您一个-10-这是因为列表中的第一个日期是较晚的日期
如果你使用
SELECT DATEDIFF(DAY, '2012-10-22 11:59:58.000', '2012-11-01 18:15:00.000')
您将得到10-因为DATEDIFF
中的第一个日期是较早的日期ABS
即可获得绝对值(不带+或-):
在这种情况下,永远不会得到负值DATEDIFF
SELECT DATEDIFF(DAY, '2012-11-01 18:15:00.000', '2012-10-22 11:59:58.000')
这会给您一个-10-这是因为列表中的第一个日期是较晚的日期
如果你使用
SELECT DATEDIFF(DAY, '2012-10-22 11:59:58.000', '2012-11-01 18:15:00.000')
您将得到10-因为DATEDIFF
中的第一个日期是较早的日期ABS
即可获得绝对值(不带+或-):
在这种情况下,永远不会得到负值