T-sql SmallDateTime添加时间超过23:30 的日期
declare @sampledate DateTime
set @sampledate='2020-09-18 23:59:53'
select @sampledate AS Date,
CAST(@sampledate as DATE) AS CAST_Date,
CAST(@sampledate as SmallDateTime) CAST_smalldatetime,
CONVERT(SmallDateTime,@sampledate) Convert_smalldatetime
将datetime
转换为smalldatetime
时,SQL将根据秒来取整分钟。结果是,23:59:29.998及以下将四舍五入到23:59,23:59:99.999及以上将四舍五入到明天。
但这能回答你的问题吗?
添加30分钟并转换为日期如何?
convert(date, dateadd(minute, 30, @sampledate)
这是预期的行为。查看MS文档中的属性Time range
。
2007-05-09 23:59:59将四舍五入2007-05-10 00:00:00