将日期/时间转换为日期/军事时间

时间:2017-04-04 00:27:14

标签: sql sql-server sql-server-2008 date

如何在包含日期/时间的100万条+记录表中将SQL Server 2008中的varchar列转换为以下格式:MM/DD/YYYY HH24:MI:SS

示例:

'Feb 14 2017  3:00PM' converted to '02/14/2017 15:00:00'
'Feb 18 2017 10:03AM' converted to '02/18/2017 10:03:00'

日期/时间列标题= ACTION_TM

请注意第一个示例中年份和时间之间的双倍空间与第二个示例中的单个空格。 '2017 3:00'vs'2017 10:03'。

提前谢谢

1 个答案:

答案 0 :(得分:1)

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql

示例... varchar(20)表示长度...并转换为20表示格式或任何所需格式。

select convert(varchar(20),getdate(),20)

但是,在您的情况下,您必须将列转换为有效日期,因此应该

select convert(varchar(20),cast('Feb 14 2017  3:00PM' as datetime),20)
select convert(varchar(20),cast('Feb 18 2017 10:03AM' as datetime),20)

这种不整洁的做法是

select convert(varchar(10),cast('Feb 14 2017  3:00PM' as datetime),101) + ' ' +  convert(varchar(112),cast('Feb 14 2017  3:00PM' as datetime),114)