我一直在谷歌搜索超过一个小时,没有任何运气。
通过CSV将MySQL数据库导入MS SQL Server 2005,其中Tstamp(时间戳)字段一直困扰着我。
如何将tstamp字段转换为SQL日期字段?
Select *,
DATEADD(SECOND, field8047, 1970/01/01) as datetime_created_calc
From [Majestic].[dbo].[hdiyouth]
新错误消息:消息8116,级别16,状态1,行1 参数数据类型varchar对于dateadd函数的参数2无效。
答案 0 :(得分:2)
我猜field8047是varchar
字段。
试试这个:
Select *,
DATEADD(SECOND, cast(field8047 as int), '19700101') as datetime_created_calc
From [Majestic].[dbo].[hdiyouth]
答案 1 :(得分:1)
假设您有一个表示数字类型的VARCHAR(),并且该数字类型表示固定日期的秒数。
将VARCHAR()转换为数字类型。
然后在DATEADD()中使用该数字。
如果数字太大,请将其分解为DAYS和SECONDS。
SELECT
DATEADD(
DAYS,
CAST([hdiyouth].[Tstamp] AS BIGINT) / (60*60*24),
DATEADD(
SECONDS,
CAST([hdiyouth].[Tstamp] AS BIGINT) % (60*60*24),
0
)
)
FROM
[Majestic].[dbo].[hdiyouth]
如果它给出了正确的时间,但错误的日期,请将0
更改为您的时间戳应该基于的日期。
答案 2 :(得分:0)
将您的字段转换为整数。
Select DATEADD(SECOND, CAST(field8047 AS INTEGER), '1970/01/01')
Select DATEADD(SECOND, CAST('60' AS INTEGER), '1970/01/01')