[英]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.