![](/img/trans.png)
[英]Conversion failed when converting datetime from character string using PHP and PDO with MS SQL
[英]Syntax error converting datetime from character string when using Java Date Picker
我正在嘗試對數據庫進行查詢以使用php返回報告。 我正在使用重復的頁面,因為它們都是從同一數據庫/表中提取的。
我收到的具體錯誤是:
消息241,級別16,狀態1,行1語法錯誤從字符串轉換datetime。
該查詢有效並返回所需的數據:
根據公司政策修訂的選擇聲明
但是,此查詢不起作用:
根據公司政策修訂的選擇聲明
我在演員表部分中將DateUpdated更改為DateAdded。 日期/時間是從Java日期選擇器腳本獲得的。 除sql查詢外,兩頁上的所有內容都是准確的。 有誰知道可能是什么問題? 我對PHP相當陌生,因此我正在學習。
我曾嘗試搜索,但不知道該怎么辦。
我已經從選擇器中聲明了這些。
$startunix = date("Y-m-d H:i:s", strtotime($startdate));
$startunixmn = date("Y-m-d 23:59:59", strtotime($startdate));
$endunix = date("Y-m-d H:i:s", strtotime($enddate));
$endunixmn = date("Y-m-d 23:59:59", strtotime($enddate));
並且在sql查詢中,代替語句中顯示的日期/時間,它們在兩個日期/時間中具有$ startunix和$ endunixm。 您是否不允許更改演員表中的內容? 我認為您可以,因為兩列的日期均為010109(mmddyy)格式。 所以我想如果您將DateUpdated更改為DateAdded(兩列的標題),則查詢應該工作,只是基於為DateAdded而不是DateUpdated選擇的日期范圍。
任何幫助或見解將不勝感激。 如果您需要更多信息,請詢問,我將盡我所能。
您可以通過檢查DateAdded
和DateUpdated
是否不為空來避免上述錯誤。 在where子句中添加DateAdded IS NOT NULL
。
最好在數據庫中插入一次准備好的值,而不是每次查詢數據庫時都對其進行解析。 您說您正在使用:
$startunix = date("Y-m-d H:i:s", strtotime($startdate));
$startunixmn = date("Y-m-d 23:59:59", strtotime($startdate));
$endunix = date("Y-m-d H:i:s", strtotime($enddate));
$endunixmn = date("Y-m-d 23:59:59", strtotime($enddate));
但是mmddYY
格式的字符串從何而來? 如果使用正確的日期填充DateAdded
和DateUpdated
字段( 請在此處檢查 ),則可以避免每次從DateAdded
字段中輸入新值。 另外,如果您不需要時間,可以使用Ymd
格式而不是Ymd H:i:s
並且可以將查詢縮短為以下形式:
SELECT CardNo as CardNo, LastName as CLname, FirstName as CFname, Email as CEmail ,DateUpdated as CUpdated, DateAdded as CEntered FROM cards
WHERE recemail = 'YES' AND email IS NOT NULL AND email <> '' AND (DateAdded BETWEEN '2013-07-29' AND '2013-08-02') ORDER BY DateAdded desc, CardNo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.