【发布时间】:2020-05-20 17:33:20
【问题描述】:
我有一列包含纪元秒数(数据类型为varchar),我需要将其转换为日期时间格式。我在使用 dateadd() 函数时遇到问题。
UPDATE A
SET A.departure = DATEADD(s, departure, '1970-01-01 00:00:00')
FROM TABLE A
我收到此错误:
参数数据类型 varchar 对于 dateadd 函数的参数 2 无效
两个问题:
- 我是否正确使用了
dateadd()函数? - 我应该将列数据类型转换为什么才能使其工作?我尝试转换为
int,但没有成功
【问题讨论】:
-
包括您要转换的列的示例值,以及您尝试转换到的正确日期时间。
-
没有样本数据,很难知道“出发”是什么......它是真正的以毫秒为单位的EPOCH吗?看看stackoverflow.com/questions/55248494/…
-
DATEADD(s, leave, cast('1970-01-01 00:00:00' as datetime))
-
“参数数据类型 varchar 对 dateadd 函数的参数 2 无效” 这个错误再清楚不过了。
departure显然是varchar。您不能将varchar“添加”到日期。第二个参数多为数值数据类型。如果departure仅包含数字数据类型,您需要 修复您的设计。如果不只包含数值,那么'abc'秒是多少秒?
标签: sql-server epoch dateadd