繁体   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