相关文章推荐
侠义非凡的铅笔  ·  Ubuntu-MPI - 知乎·  1 年前    · 
仗义的火车  ·  httprequest - Occur ...·  1 年前    · 

MSSQL Server 2008 从字符串转换日期和/或时间时转换失败 错误

0 人关注

我目前收到了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");