我正在使用MS SQL Server 2008, 在表中,我将列idate作为日期,但是以整数格式表示。 但在查询中我希望以日期格式。 是否可以将整数日期转换为正确的日期时间格式?
答案 0 :(得分:17)
您无法将整数值直接转换为日期,但您可以先将其转换为日期时间,然后转换为日期类型
select cast(40835 as datetime)
然后转换为日期(SQL 2008)
select cast(cast(40835 as datetime) as date)
欢呼声
答案 1 :(得分:3)
您必须先将其转换为日期时间,然后再转换为日期。
试试这个,它可能会有所帮助:
Select Convert(DATETIME, LEFT(20130101, 8))
然后转换为日期。
答案 2 :(得分:1)
您很可能想要查看T-SQL的 CAST和CONVERT 函数的文档,这些函数位于此处的文档中:http://msdn.microsoft.com/en-US/library/ms187928(v=SQL.90).aspx
然后,您将在T-SQL查询中使用其中一个函数将数据库中的[idate]列转换为输出中您喜欢的日期时间格式。
答案 3 :(得分:0)
阅读本文有助于解决类似的问题。数据是十进制数据类型 - [DOB] [十进制](8,0)NOT NULL - 例如 - 19700109.我想在这个月得到。解决方案是将SUBSTRING与CONVERT结合到VARCHAR。
SELECT [NUM]
,SUBSTRING(CONVERT(VARCHAR, DOB),5,2) AS mob
FROM [Dbname].[dbo].[Tablename]
答案 4 :(得分:0)
如果您的整数是以毫秒为单位的时间戳,请使用:
SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name
它会将毫秒格式化为yyyy-mm-dd string。