sql - 将 datediff 显示为秒、毫秒

标签 sql sql-server tsql datetime

我正在尝试计算两个日期时间值之间的差异。

我尝试了 datediff(s, begin,end)datediff(ms, begin,end) 但我希望将差异返回为 秒,毫秒如下所示:

4,14
63,54

最佳答案

SELECT 
  DATEDIFF(MILLISECOND, begin, end) / 1000, 
  DATEDIFF(MILLISECOND, begin, end) % 1000
FROM ...;

如果您绝对必须在 SQL 查询中将其形成为字符串(您的表示层不能这样做吗?),那么:

SELECT 
  CONVERT(VARCHAR(12),  DATEDIFF(MILLISECOND, begin, end) / 1000)
  + ',' 
  + RIGHT('000' + CONVERT(VARCHAR(4), DATEDIFF(MILLISECOND, begin, end) % 1000), 3)
FROM ...;

此外,我真的希望您有比 beginend 更好的列名称。

关于sql - 将 datediff 显示为秒、毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15660647/

相关文章:

sql - 用中文值查询

mysql - 在MYSQL中添加不带 "create assertion"的检查约束

sql - 查找任何列中具有空值的所有行

c# - ElasticSearch 与 SQL 全文搜索

sql-server - 检查字符串是否不包含另一个字符串

SQL like 日期子句

php - 将 CSV 信息推送到表时 SQL DATE 类型变量为 NULL

sql - 使用 cmd shell 和 bcp 导出到带有列标题的 CSV

sql - T-SQL - 如何更快地使用多个 LIKE 子句进行 SELECT 查询?

sql - 将 float 转换或转换为 nvarchar?