![](/img/trans.png)
[英]Conversion failed when converting date and/or time from character string when converting inputted time | SQL, SQLSRV
[英]MSSQL Server 2008 Conversion failed when converting date and/or time from character string Error
我當前收到MSSQL Server 2008錯誤: Conversion failed when converting date and/or time from character string.
我檢查了以下線程,但仍然沒有任何不足:
在插入datetime時從字符串 轉換日期和/或時間時轉換失敗在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
在MSSQL中,MYDATE字段的類型為datetime
。 我嘗試將每個MYDATE變量和1970-01-01
都強制轉換為日期時間,但仍然收到錯誤。
不幸的是,“ rnm”被強制轉換為VARCHAR,因為它仍然是使用“文本”類型的舊數據庫。
謝謝。
---更新:
$startDate = strtotime($_GET['startDate'] . " 00:00:00");
$endDate = strtotime($_GET['endDate'] . " 23:59:59");
然后,通過bindParam()
將以上內容綁定到准備好的變量。
您正在按日期時間MYDATE分組,而不是由varchar的IsNull(MYDATE,'None')分組,有時將'None'作為值存儲。 WHERE子句中的所有那些DATEDIFF和轉換將導致性能問題。 嘗試刪除DATEDIFF,並以datetime格式傳遞startdate / enddate。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.