我想以DD-MM-YYYY
格式查找两个日期之间的差异。例如,我有2个日期29-10-2018
和29-11-2018
。我想找到SQL Server中这两个日期(30天)之间的天数差异。
答案 0 :(得分:1)
您可以更改当前会话的date format
,然后使用DateDiff
功能。
SET DATEFORMAT 'dmy'
SELECT DATEDIFF(DAY, '29-10-2018', '29-11-2018')
在将其添加到生产代码之前,我将详细检查Set DateFormat
。
这将更改SESSION日期格式,而不是数据库。
[order中的注释:这通常不是解决日期解释问题的方法。如果可以避免,日期时间不应存储为字符串(请使用日期时间或日期列)。如果必须以字符串形式存储,请使用ISO 8601格式,该格式基本上为YYYYMMDD]
答案 1 :(得分:0)
使用DATEDIFF
SELECT DATEDIFF(day, '2018-10-29 00:00:00.000', '2010-11-29 00:00:00.000')
答案 2 :(得分:0)
声明@ date1 varchar(10),@ date2 varchar(10)
set @ date1 = '01 -11-2018'
set @ date2 = '28 -11-2018'
选择
datefromparts(
right(left(@date2 ,10),4),
substring(left(@date2 ,10),4,2),
left(left(@date2 ,10),2)
)
选择 DATEDIFF ( DAY,
datefromparts( right(left(@date1 ,10),4),
substring(left(@date1 ,10),4,2),
left(left(@date1 ,10),2)
),
datefromparts( right(left(@date2 ,10),4),
substring(left(@date2 ,10),4,2),
left(left(@date2 ,10),2)
)
)