Kai*_*shu 1 sql-server sql-server-2012 datetime date
该table
任务有列如下:
Task(TaskID, TaskName, CreatedDate)
Run Code Online (Sandbox Code Playgroud)
并希望根据日期时间差异执行代码块:
如果任务 CreatedDate 已过去 15 分钟 THEN
执行块#01
否则,如果任务 CreatedDate 还没有超过 15 分钟,那么
执行块#02
我测试了下面的查询,但它给出的结果为 61633440
SELECT DATEDIFF(MINUTE, CONVERT(VARCHAR(10), CreatedDate, 108), CURRENT_TIMESTAMP) AS MinuteDiff
Run Code Online (Sandbox Code Playgroud)
我们如何在 sql 中实现上述目标?
CURRENT_TIMESTAMP返回当前日期时间,类似于2017-03-09 15:19:53.770
.
CONVERT(VARCHAR(10), CreatedDate, 108)
返回一个只有 time 的字符串15:19:53
。
DATEDIFF的第二个参数采用日期时间,因此您的字符串被隐式转换为日期时间。由于缺乏更好的东西来用于 SQL Server 使用的日期,1900-01-01
因此您的第二个参数最终为,1900-01-01 15:19:53.000
并且该函数返回自上个世纪初以来的分钟数。
删除第二个参数中的转换,它应该适合你。
归档时间: |
|
查看次数: |
6326 次 |
最近记录: |