【问题标题】:Trying to convert into datetime from varchar(50), todays date + have only hours minutes and seconds试图从 varchar(50) 转换为日期时间,今天的日期 + 只有小时分钟和秒
【发布时间】:2017-07-28 13:06:27
【问题描述】:

我有一个临时表,我正在尝试将下面显示的日期转换为日期时间。该列设置为 varchar(50)。数据是从一个长度为 50 个字符的 csv 文件传输而来的。

[CODE]
SELECT [Date]
  ,Patient
  ,ISNULL(Doctor,-1) AS Doctor
  ,[Procedure]
  ,CAST(Charge AS decimal(8,2)) AS ChargeDecimal 
FROM ##TempBellevueLoadCSV

--Result:
Date
00:00.0
15:00.0 --Shown below:
00:00.0
00:00.0

--Need Datetime format with today's date added like below: 
Date
2017-03-08 15:00:00.000

 SELECT 

     CAST('0000-00-00 '+ SUBSTRING(CAST(t.[Date] AS varchar(8)),1, 7)+'0.000'
               AS varchar) AS [Date]
     ,Patient 
     ,Doctor 
     ,[Procedure] 
     ,CAST(Charge AS decimal(8,2)) AS Charge 
 FROM ##TempBellevueLoadCSV as t

 --This looks like it, but cannot cast into datetime.

 --Could I do this??? Doesn't work.
 CAST(GETDATE()+[Date]) AS datetime

[/代码]

--更新:我需要添加当前日期和小时分钟秒作为数据的一部分。如何将今天的日期添加到我已有的小时、分钟、秒?

【问题讨论】:

  • 您使用的是什么数据库?这会影响可用的日期函数。

标签: sql datetime time


【解决方案1】:
SELECT CONVERT(DATETIME,[Date],103)[Date]
,Patient
,ISNULL(Doctor,-1) AS Doctor
,[Procedure]
,CAST(Charge AS decimal(8,2)) AS ChargeDecimal 
FROM ##TempBellevueLoadCSV

【讨论】:

  • 非常感谢您的帮助,但这不起作用。我需要将日期添加到我已经拥有的小时分钟和秒数中。非常感谢您的帮助!
  • 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
【解决方案2】:

我通过使用 SSIS 添加派生列、替换时间和 添加一行代码: [代码] (DT_WSTR,4)DATEPART("yyyy",GETDATE()) + RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GETDATE()),2) + RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GETDATE()),2) + 时间 [/代码]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2021-12-27
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多