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' 等。
相关推荐
qq_508823404 小时前
金融数据库--3Baostock
数据库·金融
悦数图数据库5 小时前
图技术重塑金融未来:悦数图数据库如何驱动行业创新与风控变革
数据库·金融
九河云5 小时前
华为云 GaussDB:金融级高可用数据库,为核心业务保驾护航
网络·数据库·科技·金融·华为云·gaussdb
老华带你飞5 小时前
租房平台|租房管理平台小程序系统|基于java的租房系统 设计与实现(源码+数据库+文档)
java·数据库·小程序·vue·论文·毕设·租房系统管理平台
ouou06177 小时前
企业级NoSql数据库Redis集群
数据库·redis·nosql
F_D_Z7 小时前
【SQL】指定日期的产品价格
数据库·sql·mysql
axban8 小时前
QT M/V架构开发实战:QStringListModel介绍
开发语言·数据库·qt
Blossom.1188 小时前
从“能写”到“能干活”:大模型工具调用(Function-Calling)的工程化落地指南
数据库·人工智能·python·深度学习·机器学习·计算机视觉·oracle
麦聪聊数据8 小时前
如何使用 QuickAPI 快速连接 MySQL 数据库并发布 RESTful API
数据库·sql·mysql·restful·数据服务