【问题标题】:Convert date in excel of the format "25-OCT-13 01.08.24.732000000 PM" to DateTime in Sql Server 2008 R2在 Sql Server 2008 R2 中将格式为“25-OCT-13 01.08.24.732000000 PM”的 Excel 中的日期转换为 DateTime
【发布时间】:2013-11-18 20:38:05
【问题描述】:

我有一个格式为“25-OCT-13 01.08.24.732000000 PM”的 varchar 日期(已从 excel 文件中读取)。现在我需要在 Sql Server 2008 R2 中将此转换为 DateTime 类型。

我检查了 Sql Server 的 Convert() 函数,但这种格式与任何现有格式都不匹配,例如101 或 120 等,即 Convert(DateTime, thisweirdDate, 120) 不起作用。

谢谢。

【问题讨论】:

  • 我会将它作为 varchar 放入临时表中。该表还将具有年、月、日、小时、分钟、秒、毫秒和最终日期的列。按该顺序更新这些字段。

标签: sql sql-server excel datetime sql-server-2008-r2


【解决方案1】:

好的,必须有更好的方法来做到这一点,但这里有一种方法:

DECLARE @DataExample VARCHAR(31)
SET @DataExample = '25-OCT-13 01.08.24.732000000 PM'

SELECT  CONVERT(DATETIME,CONVERT(VARCHAR(8),[Date],112)+
        ' '+CONVERT(VARCHAR(12),[Time]))
FROM (
SELECT  CONVERT(DATE,REPLACE(LEFT(@DataExample,9),'-',' '),6) [Date],
        CONVERT(TIME,REPLACE(SUBSTRING(@DataExample,11,12),'.',':')+
                     RIGHT(@DataExample,2)) [Time]
) A

【讨论】:

  • 太棒了!杰出的!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-05
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多