转换时间 - T-SQL

时间:2013-08-09 18:21:07

标签: sql sql-server sql-server-2008 tsql sql-server-2008-r2

我早上05:00 AM或5:00 AM或00:05:00或00:00:00 AM或凌晨5点(小时....但也可以有分钟或seco

我想将此转换为HH:MM:SS以上示例以小时为单位,但可能只需几分钟或几秒......

现在,我不知道这是否可行,因为我们说05:00 AM可能是5小时或5分钟。 有没有人遇到过这样的情况?如果是这样,你是如何处理这个问题的?

我想我们可以使用LEN功能检查它是HOURS还是分钟,所以如果是05:00 AM或5:00 AM,它是分钟,如果它是05:00:00 AM或5:00:00 AM,那就是小时。

或者我们可以检查“:”事件的数量,并确定它是小时,分钟还是秒,并根据它进行转换......

任何人都有更好的解决方案吗?

谢谢

1 个答案:

答案 0 :(得分:1)

  1. 施放日期
  2. 使用格式
  3. 转换为字符串

    以下是上面输入的所有组合的示例。每个人都返回05:00:00

    select convert(varchar(15), cast('05:00 AM' as datetime), 108)
      , convert(varchar(15), cast('5:00 AM' as datetime), 108)
      , convert(varchar(15), cast('00:05:00 AM' as datetime), 108)
      , convert(varchar(15), cast('00:5:00 AM' as datetime), 108)
      , convert(varchar(15), cast('5 AM' as datetime), 108)