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' 等。
相关推荐
许彰午1 分钟前
03-Linux环境准备依赖包内核参数与用户组
linux·运维·服务器·数据库
阳光九叶草LXGZXJ16 分钟前
达梦数据库-报错-16-MERGE INTO提示:无效的列名[XX]
linux·运维·数据库·sql·学习
墨天梦18 分钟前
B10_文件SharedPreferences与SQLite
jvm·数据库·sqlite
鲲极27 分钟前
居间业务数据统计看板 三条取数口径怎么归一才对得上
数据库·鲲极·鲲极系统
ao-weilai43 分钟前
MySQL数据库:基本查询
android·数据库·mysql
java1234_小锋1 小时前
【技术专题】Mysql8 数据库 - Mysql8 查询数据
数据库·mysql
ToddyBear2 小时前
云厂商技术支持部门的原话:元数据库删了,我们也恢复不了[特殊字符]
数据库·产品运营
镜舟科技2 小时前
从 StarRocks 到 MIP:数据平台的下一步是“理解”
starrocks·sql·ai·prompt·agent·context·mip
IanSkunk3 小时前
从检查设备到训练方案:眼科与视光中心设备联动的数据通路、字段口径与校验规则
服务器·数据库·负载均衡
ShineWinsu3 小时前
对于Redis:事务的解析
数据库·redis·mysql·缓存·面试·事务·acid