我目前收到了MSSQL Server 2008的错误。
Conversion failed when converting date and/or time from character string.
我已经检查了下面的线程,但仍然没有收获。
在插入日期时间时,从字符串转换日期和/或时间时,转换失败。 在SQL SERVER 2008中,当从字符串转换日期和/或时间时,转换失败。
下面是查询的内容(我使用PHP的PDO SQLSRV)。
SELECT ISNULL(MYDATE,'None') AS MYDATE,
ISNULL(CAST(rnm AS NVARCHAR(50)),'None') AS Rnm,
DATENAME(dw, MYDATE) as nameOfDay,
FROM tab1
INNER JOIN rnm ON (tab1.rte = rnm.rte)
WHERE DATEDIFF(S, '1970-01-01', MYDATE) >= :startDate
AND DATEDIFF(S, '1970-01-01', MYDATE) <= :endDate
GROUP BY MYDATE, CAST(rnm AS NVARCHAR(50)) WITH ROLLUP
MYDATE字段在MSSQL中的类型是datetime
。 我已经尝试将每个MYDATE变量和1970-01-01
都转换为数据时间,但我仍然收到了错误。
rnm "被铸为VARCHAR,因为它是一个仍然使用 "文本 "类型的旧数据库,很不幸。
--更新。
$startDate = strtotime($_GET['startDate'] . " 00:00:00");
$endDate = strtotime($_GET['endDate'] . " 23:59:59");