【发布时间】:2013-07-10 16:56:55
【问题描述】:
在此处使用 SQL Server 2008。我仍然无法将可怕的日期从格式INT 转换为可用的格式。当我只转换一列时它工作正常,但如果我同时尝试所需的日期和发货日期,它会给我
从字符串转换日期和/或时间时转换失败
错误。
这是我的代码:
SELECT
SPSYS07.loc_code, SPSYS07.so_no, SPSYS07.cust_no,
CONVERT(DATETIME, CONVERT(CHAR(8), SPSYS07.req_d_date), 101),
CONVERT(DATETIME, CONVERT(CHAR(8), SPSYS07.ship_date), 101)
FROM
SCOT_IQ.dbo.SPSYS07 SPSYS07
WHERE
(SPSYS07.loc_code = '103') AND (SPSYS07.order_date = 20120531)
ORDER BY
SPSYS07.so_no
任何帮助将不胜感激!
【问题讨论】:
-
一些数据和预期输出会很有用。
-
您正在将
order_date列与一个数字进行比较,那么该列实际上是数字吗? req_d_date` 和ship_date是否也是数字并使用与order_date相同的格式? -
听起来您的某些整数日期未正确存储在表中。尝试查找无效值。
-
你可以用这样的东西来追查罪魁祸首,select * from MyTable where ISDATE(convert(char(8),MyDateColumn))=0
-
是的,有些值在 ship_date 中只有 1 个零...
标签: sql sql-server-2008