0
我有一个表INTEG_LOG
其中包含日期列DATE_LOG
。从那天起,我需要以20171907
的格式提取日期和094225
这样的小时。CONVERT抛出错误转换数据类型日期为varchar
首先,我试图找到我的约会。为此我使用这条线:
SELECT
REPLACE(CONVERT(VARCHAR(10), DATE_LOG, 111), '/', '') AS LOG_DATE
FROM
INTEG_LOG
它不是很干净,但它工作正常。
我决定与该行的时间做同样的:
SELECT
REPLACE(CONVERT(VARCHAR(8), DATE_LOG, 108), ':', '') AS LOG_HOUR
FROM
INTEG_LOG
但这SQL抛出
错误转换数据类型日期为varchar
我甚至尝试没有替换,我仍然得到相同的错误。
我真的不知道为什么与风格111第一个转换工作正常,但不是108
我使用SQL Server 2008 R2。
感谢
哪个版本** * *您正在使用SQL Server吗?而** datatype **是那一列'DATE_LOG'?你说这是一个“日期”列 - 但如果它确实是数据类型“DATE”,那将不包含任何时间部分..... –
对我来说 - 对于我来说 - 用SQL Server 2014和'DATETIME2(3)' (甚至'DATETIME')数据类型列 - 此代码工作正常 –
感谢您的答案,我添加了SQL Server的版本。当我检查我的专栏时,这是一个约会。我已经使用GETDATE()尝试了这些请求,并且它工作正常。你说得对,当我把我的专栏改成日期时间的时候它就起作用了。谢谢 – nebra