SQL Server中整数1隐式转换为datetime是否始终代表1天?
SQL Server 中 datetime 与整数相加的隐式转换规则
微软官方文档明确规定了这一运算规则:
- 当对
datetime或smalldatetime类型值与整数执行加法/减法操作时,整数代表的是天数间隔。 - 这类逻辑属于SQL Server日期时间数据类型的基础运算规则,官方关于日期时间数据类型及函数的文档中明确说明:整数与
datetime类型进行算术运算时,会被隐式转换为天数增量,而非小时、分钟等其他时间单位。 - 示例验证:执行
select getdate() + 1会返回当前时间的次日同一时刻;执行select getdate() - 3则返回三天前的同一时刻。 - 若需要以小时、分钟等更小单位调整日期时间,推荐使用
DATEADD函数,比如select DATEADD(minute, 30, getdate())可实现当前时间加30分钟的效果。
内容的提问来源于stack exchange,提问作者Merlin Nestler
相关产品推荐
相关产品推荐

