【问题标题】:Sql datetime calculationSql日期时间计算
【发布时间】:2012-01-18 09:17:20
【问题描述】:

我有一张 Excel 表格,下面有这个公式。我想用sql计算相同的公式。结果将排在第二位。

谢谢,

declare @t1 AS datetime
declare @t2 AS datetime
declare @t3 AS datetime
declare @t4 AS datetime

set @t1 = '2011-11-04 00:00:00.000' --start date
set @t2 = '2012-01-16 18:21:55.000' --start time
set @t3 = '2011-11-10 00:00:00.000' --end date
set @t4 = '2012-01-16 12:10:00.000' --end time

Excel公式

((end date-start date-1)+(end time-(0,375)))*24*60*60

0,375 值表示 9 小时

公式结果将是 = 443400 秒

【问题讨论】:

  • 如果您发布代码、XML 或数据示例,在文本编辑器中突出显示这些行并单击编辑器上的“代码示例”按钮 ({ })工具栏以很好地格式化和语法突出显示它! (无需以<br> ...结束每一行)
  • 所以你的公式中没有使用开始时间?

标签: sql sql-server-2008 excel datetime


【解决方案1】:

您提到您没有在公式中使用开始时间?

来了:

declare @t1 AS datetime
declare @t2 AS datetime
declare @t3 AS datetime
declare @t4 AS datetime

set @t1 = '2011-11-04 00:00:00.000' --start date
set @t2 = '2012-01-16 18:21:55.000' --start time
set @t3 = '2011-11-10 00:00:00.000' --end date
set @t4 = '2012-01-16 12:10:00.000' --end time

SELECT CAST((DATEDIFF(d, @t1, @t3)-1 + (CAST(@t4 AS FLOAT) - FLOOR(CAST(@t4 AS FLOAT)) - 0.375))*24*60*60 AS INT)

【讨论】:

  • 谢谢奥列格,你知道任何关于sql日期计算的网站吗?
  • Google Sql Server 在线图书
猜你喜欢
  • 2020-04-11
  • 1970-01-01
  • 2010-09-17
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 2014-03-04
  • 2018-02-27
相关资源
最近更新 更多