Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/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日期转换比实际日期晚68年_Sql_Sql Server_Date - Fatal编程技术网

SQL Server日期转换比实际日期晚68年

SQL Server日期转换比实际日期晚68年,sql,sql-server,date,Sql,Sql Server,Date,我想将整数转换为日期格式。我正在使用以下脚本: SELECT CAST(7549 as datetime) 它还给我一个日期1920-09-02 然而,7549实际日期是1988-08-31 有谁能帮我做正确的映射吗?请看背面 DECLARE @YourDate AS Datetime SET @YourDate = '1920-09-02' SELECT CAST(@YourDate AS INT) --7549 SET @YourDate = '1988-08-31' SELECT C

我想将整数转换为日期格式。我正在使用以下脚本:

SELECT CAST(7549 as datetime)
它还给我一个日期1920-09-02

然而,7549实际日期是1988-08-31

有谁能帮我做正确的映射吗?

请看背面

DECLARE @YourDate AS Datetime

SET @YourDate = '1920-09-02'
SELECT CAST(@YourDate AS INT) --7549

SET @YourDate = '1988-08-31'
SELECT CAST(@YourDate AS INT) -- 32384

如果希望结果为“1988-08-31 00:00:00.000”,请尝试使用以下脚本

SELECT CAST(7549 as datetime)-CAST('1832-01-03' as datetime)


最佳方法取决于您的DBMS;请更新您的问题标签,以指示这是否是PostgreSQL、Oracle、MySQL、SQLServer等。从那里你发现7549的实际日期是1988-08-31?!?7549实际上是1920-09-02。你怎么能说7549实际上是1988-08-31?那么选择DATEADDd,24835,CAST7549作为datetime呢?SQL Server中的0是1900-01-01。与之前使用的SQL版本不同,它似乎是1967-12-31。请尝试DATEADDDAY、7549、'1967-12-31'或在此处替换任何INT。编辑:仅供参考,将INT转换为datetime会将天数添加到0,在SQL Server中为1900-01-01。这对我来说不是正确的解决办法。我不确定CAST是否是用于我的任务的正确功能我没有给您提供解决方案:
SELECT CAST(7549 as datetime)+CAST(24835 as datetime)