将不完整的字符串转换为SQL中的日期

时间:2013-01-25 17:16:30

标签: sql-server

我有一个数据列表,其中包含缺少年份的时间戳,数据的目的是用于预测,所以我们将只讨论未来的年份,但是如何将这些字符串存储为日期? / p>

他们遵循以下格式:

01 Jan

02 Jan

...

31 Jan

我认为SQL会自动转换它们,只有最小的年份和时间,但它会抛出转换失败错误。有任何想法吗?我不是一个sql人,所以我很难过。

更多信息

我需要将这些存储在一个现有的表中,该表具有timestamps的datetime列,否则我只是将它们存储为字符串并在UI中进行转换。

2 个答案:

答案 0 :(得分:2)

你可以这样做

select CAST('01 Jan ' + CAST(YEAR(GETDATE()) AS VARCHAR) As datetime)

select CAST(columnname + ' ' + CAST(YEAR(GETDATE()) AS VARCHAR) As datetime)
FROm TableName

答案 1 :(得分:1)

SELECT CAST(Field + ' ' + CAST(Year(GetDate()) AS Varchar) AS DateTime)
FROM YourTable

Fiddle

祝你好运。