通过 PHP 显示时 MSSQL 查询中的日期转换不起作用

Posted

技术标签:

【中文标题】通过 PHP 显示时 MSSQL 查询中的日期转换不起作用【英文标题】:Date conversion in MSSQL query not working when displayed via PHP 【发布时间】:2013-12-12 15:02:18 【问题描述】:

因此,我有一个 PDO 语句。数据来自 SQL Server 数据库:

//Get full record from form108 database
$data = $con->prepare("SELECT CONVERT(varchar, p.WorkBeginDate, 101), * FROM Employee AS e 
INNER JOIN EmployeeProjectInfo AS p ON e.empUIN = p.empUIN WHERE e.empUIN = :empuin AND   
p.UID = :uid");
$input = array('empuin'=>$_SESSION['UIN'],'uid'=>$_SESSION['ID']);
$data->execute($input);

除日期外,一切正常。我得到的是 yyyy-mm-dd,而不是所需的格式 mm/dd/yyyy。我希望 CONVERT() 函数能像 mysql 中的 DATE_FORMAT() 函数一样工作。数据库中的数据类型是日期。我究竟做错了什么?

【问题讨论】:

日期存储为 yyyy-mm-dd。为什么你假设应用程序或数据库知道你想要的格式是 mm/dd/yyyy? 【参考方案1】:

没有错...您所要做的就是将其更改为以前的格式。这是一个非常基本的例子:

$mydate = $result['dateField'];
echo date('m/d/Y', strtotime($mydate)); //prints: 12/25/2013

【讨论】:

谢谢,确实有效。有没有办法在查询中做到这一点?在 MySQL 中,我成功地使用了 DATE_FORMAT 函数。我猜它在 MSSQL 中的工作方式不一样? 我对 mssql 了解不多,但我发现了一些有用的东西:mysqltomssql.blogspot.com.br/2011/04/dateformat-syntax.html 和 sql-server-helper.com/tips/date-formats.aspx ... 希望对您有所帮助。

以上是关于通过 PHP 显示时 MSSQL 查询中的日期转换不起作用的主要内容,如果未能解决你的问题,请参考以下文章

PHP MSSQL:查询返回无行时如何显示输出

如何在 PHP 中将标准 AS400 CYMD 日期格式转换为 MDY?

查询失败(使用 mssql_query() 和 php 时)

在 PHP Laravel 中的 SQL Server 中将字符串转换为日期数据类型

通过 *** 将 PHP 应用程序连接到 MSSQL 时应该考虑啥?

PHP 将 NULL 转换为 MSSQL 存储过程中的空字符串