簡體   English   中英

使用Java日期選擇器時從字符串轉換日期時間的語法錯誤

[英]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選擇的日期范圍。

任何幫助或見解將不勝感激。 如果您需要更多信息,請詢問,我將盡我所能。

您可以通過檢查DateAddedDateUpdated是否不為空來避免上述錯誤。 在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格式的字符串從何而來? 如果使用正確的日期填充DateAddedDateUpdated字段( 請在此處檢查 ),則可以避免每次從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM