sql server中字符串类型的日期如何比较大小

SQL Server 计算两个时间相差

案例:计算 标准结束时间 和 实际结束时间 之间的秒数差,并根据这个差值判断是否超时。

假设 test 表中有以下数据:

标准结束时间 实际结束时间
2024-10-12 10:00:00 2024-10-12 10:30:00
2024-10-12 11:00:00 2024-10-12 10:55:00
2024-10-12 12:00:00 2024-10-12 12:00:00
sql 复制代码
SELECT 
    CASE 
        WHEN DATEDIFF(SECOND, CAST(标准结束时间 AS DATETIME), CAST(实际结束时间 AS DATETIME)) > 0 
        THEN 1
        ELSE 0
    END AS '是否超时',
    DATEDIFF(SECOND, CAST(标准结束时间 AS DATETIME), CAST(实际结束时间 AS DATETIME)) AS '实际超时'
FROM test;
  • CASE 语句:根据 DATEDIFF 函数的结果来判断是否超时。
  • 如果 实际结束时间 晚于 标准结束时间,则 DATEDIFF 的结果会大于 0,此时返回 1 表示超时。
    否则返回 0 表示没有超时。
  • DATEDIFF(SECOND, ...):计算 标准结束时间 和 实际结束时间 之间的秒数差。

执行上述查询后,结果将是:

是否超时 实际超时
1 1800
0 -300
0 0

注意事项

  • 数据类型:确保 标准结束时间 和 实际结束时间 列的数据类型是 VARCHAR 或其他可以被转换为 DATETIME 类型的字符串格式。
  • 格式一致性:确保 标准结束时间 和 实际结束时间 的字符串格式与 CAST 函数兼容。常见的兼容格式包括 'yyyy-MM-dd HH:mm:ss'、'MM/dd/yyyy HH:mm:ss' 等。
相关推荐
岁岁种桃花儿2 小时前
MySQL从入门到精通系列:InnoDB记录存储结构
数据库·mysql
jiunian_cn3 小时前
【Redis】hash数据类型相关指令
数据库·redis·哈希算法
冉冰学姐3 小时前
SSM在线影评网站平台82ap4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm框架·在线影评平台·影片分类
知识分享小能手4 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)
数据库·学习·sqlserver
踩坑小念5 小时前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
萧曵 丶6 小时前
MySQL 语句书写顺序与执行顺序对比速记表
数据库·mysql
Wiktok7 小时前
MySQL的常用数据类型
数据库·mysql
曹牧7 小时前
Oracle 表闪回(Flashback Table)
数据库·oracle
J_liaty7 小时前
Redis 超详细入门教程:从零基础到实战精通
数据库·redis·缓存
m0_706653237 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python