我最近在 SQL Server 2008 开发环境中创建了一个连接日期和时间的函数,如下所示
select cast('2016-11-09 15:35:00' AS DATE) + CAST('00:00:00' AS DATETIME)
在 SQL Server 2008 中它运行良好,但在 SQL Server 2016 中部署时会抛出错误
数据类型 date 和 datetime 在 add 运算符中不兼容。
但只有当查询单独放置时它才能正常工作
select cast('2016-11-09 15:35:00' AS DATE)
select CAST('00:00:00' AS DATETIME)
那么,我该如何解决这个问题。我发现有人说不兼容的文章TIME
数据类型,但我没有使用它。其实我的串联是这样的
WHERE
CREATIONDATE BETWEEN CAST(@CurrentDate AS DATE) + CAST('00:00:00' AS DATETIME) AND CAST(@CurrentDate AS DATE) + CAST('23:59:59' AS DATETIME)
where @CurrentDate
is a DateTime
变量并作为“2016-11-09 15:35:00”传递给我的函数
我无法修改 SQL Server 2016 框的配置。我该如何修复我的代码?
Thanks
只需将其转换为日期,然后转换为日期时间即可。
select cast(cast('2016-11-09 15:35:00' as date) as datetime)
要再延长 1 天,请使用:
dateadd select dateadd(dd,1,cast(cast('2016-11-09 15:35:00' as date) as datetime))
我不太喜欢 Between 运算符,所以当我处理日期时间时,我倾向于使用 > startDate 和
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)