Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL Server 2008中将int转换为日期_Sql_Sql Server 2005_Sql Server 2008 - Fatal编程技术网

如何在SQL Server 2008中将int转换为日期

如何在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

我正在使用MS SQL Server 2008, 在一个表中,我将idate列作为日期,但采用整数格式。 但在查询中,我希望它是日期格式的。
是否可以将整数日期转换为正确的日期时间格式?

您很可能想查看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函数?)