如何在SQL Server 2008中将int转换为日期
我正在使用MS SQL Server 2008, 在一个表中,我将idate列作为日期,但采用整数格式。 但在查询中,我希望它是日期格式的。如何在SQL Server 2008中将int转换为日期,sql,sql-server-2005,sql-server-2008,Sql,Sql Server 2005,Sql Server 2008,我正在使用MS SQL Server 2008, 在一个表中,我将idate列作为日期,但采用整数格式。 但在查询中,我希望它是日期格式的。 是否可以将整数日期转换为正确的日期时间格式?您很可能想查看T-SQL的转换函数的文档,位于以下文档中: 然后,您将在T-SQL查询中使用这些函数之一,将数据库中的[idate]列转换为输出中您喜欢的日期时间格式。您不能直接将整数值转换为日期,但可以先将其转换为日期时间,然后再转换为日期类型 选择cast(40835作为日期时间) 然后转换为日期(SQL 2
是否可以将整数日期转换为正确的日期时间格式?您很可能想查看T-SQL的转换函数的文档,位于以下文档中:
然后,您将在T-SQL查询中使用这些函数之一,将数据库中的[idate]列转换为输出中您喜欢的日期时间格式。您不能直接将整数值转换为日期,但可以先将其转换为日期时间,然后再转换为日期类型
选择cast(40835作为日期时间)
然后转换为日期(SQL 2008)
选择cast(cast(40835作为日期时间)作为日期)
干杯您必须首先将其转换为datetime,然后再转换为date 试试这个,可能会有帮助:
Select Convert(DATETIME, LEFT(20130101, 8))
然后转换为日期。阅读此内容有助于解决类似问题。数据为十进制数据类型-[DOB][decimal](8,0)不为空-例如-19700109。我想在一个月内完成。解决方案是将SUBSTRING与CONVERT to VARCHAR结合起来
SELECT [NUM]
,SUBSTRING(CONVERT(VARCHAR, DOB),5,2) AS mob
FROM [Dbname].[dbo].[Tablename]
如果整数是以毫秒为单位的时间戳,请使用:
SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name
它将毫秒格式化为yyyy-mm-dd字符串。当你说你有一个整数格式的日期时,你的确切意思是什么?格式是什么?davey是正确的
DATEADD(DAY,40835,'1900-01-01')
在我运行的测试中稍快一些。只需重新阅读您的问题,如果想要作为日期时间,则只需选择cast(40835作为datetime)即可。我必须从整数值(excel)中减去2天以获得正确的日期,例如选择cast(40835-2作为datetime)问题是关于MS SQL Server,它没有任何函数strftime
(我相信它是SQLite函数?)