【问题标题】:DatePart returning 0返回 0 的日期部分
【发布时间】:2012-09-01 18:59:11
【问题描述】:

我有以下 sql 将小时转换为分钟,但它返回 0。为什么我会得到这个?

选择(日期部分(分钟,'05:00:00.0000000'))

返回 300

【问题讨论】:

  • 你可能想要 datediff 代替。

标签: sql-server-2008


【解决方案1】:

因为 5am 的分钟部分是 0 : 即 05:00:00

你想要类似的东西

select (datepart(minute, '05:00:00.0000000')) 
   + (datepart(hour, '05:00:00.0000000')*60) 

select datediff(minute,  0, convert(time,'05:00:00.0000000'))

【讨论】:

  • DATEDIFF 返回以下错误 Msg 241, Level 16, State 1, Line 1 从字符串转换日期和/或时间时转换失败。
  • 谢谢,完美,它正在工作。如果我想将金额乘以钱并返回钱类型,我该怎么做?我得到了这个语法返回的空值
  • SET @CalcTimeDelay = ((DATEDIFF(minute, 0, @PkgTimeDelay) - DATEDIFF(minute, 0,@CompanyTimeDelay))) * @ProdTimeDelayAmount;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多