繁体   English   中英

在PHP中使用MSSQL日期时间时遇到问题(通过SQLSRV)

[英]Trouble using MSSQL datetime in PHP (via SQLSRV)

我和这个人一起转! 我正在执行以下操作:

  1. 通过SQL / PHP从MSSQL日期时间字段中检索日期
  2. 通过查询字符串将日期发送到新的PHP页面
  3. 尝试在新的SQL查询中使用该日期

我在这里遇到问题。

如果我使用echo:

echo $_REQUEST['rSessionDate'];
output: 15/10/2012

很好,但是当我在SQL查询中使用它时,没有得到我期望的结果,因此我认为最好的办法是确保首先将其识别为日期。

如果我使用date_format():

echo date_format($_REQUEST['rSessionDate'],'Y-m-d');
output: Warning: date_format() expects parameter 1 to be DateTime, string given in ...

如果我使用strtotime():

echo strtotime($_REQUEST['rSessionDate']);
output: (nothing)

如果我使用date():

echo date('Y-m-d H:i',$_REQUEST['rSessionDate']);
output: Notice: A non well formed numeric value encountered in ...

如果我将date()与strtotime()一起使用:

echo date('Y-m-d H:i',strtotime($_REQUEST['rSessionDate']));
output: 1970-01-01 01:00

我确定我完全缺少一些简单的东西。

编辑:我尝试了一些新功能,我发现:

$rSessionDate = new DateTime($_REQUEST['rSessionDate']);
echo $rSessionDate->format('Y-m-d H:i:s');
output: Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (15/10/2012) at position 0 (1): Unexpected character'

和:

$rSessionDate = date_create($_REQUEST['rSessionDate']);
echo date_format($rSessionDate, 'Y-m-d H:i:s');
output: Warning: date_format() expects parameter 1 to be DateTime, boolean given i

编辑2:

我尝试使用CAST:

SELECT fCourseCode ,fCourseTitle FROM tCourses WHERE fCourseCode = '4B' AND (ISNULL(fValidStart, 0) <= CAST('2012-10-15 00:00:00' as DATETIME)) 

但这失败并显示错误“将varchar数据类型转换为datetime数据类型导致值超出范围”

这些可能有助于阐明您要查找的内容。

http://www.ozzu.com/programming-forum/php-mssql-datetime-field-not-pulling-correctly-t106226.html

http://af-design.com/blog/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-object/

在上面的示例中,strtotime()返回一个纪元时间戳。

或检查CAST和CONVERT(指的是MSSQL2000,但可能仍然可以帮助您)
http://msdn.microsoft.com/zh-CN/library/aa226054%28SQL.80%29.aspx

如果日期是从MSSQL表中检索的,并且您想在PHP中使用strtotime() ,并且又不想将日期格式更改为yyyy-mm-dd,则可以使用

CONVERT(VARCHAR(30), DateFromMSSQL, 121) as DateFromMSSQL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM