PHP/MS SQL Server显示SQL Server日期时间


PHP/MS SQL Server display sql server datetime

im试图使用PHP显示MSSQLServer日期时间表中的日期和时间,SQL Server中的值为datetime EX.2012-08-20 06:23:28:214。现在我想显示它的确切结果,但它php显示的结果类似于EX.Aug 20 2012 6:23AM。我曾尝试使用strtotime,但毫秒不显示或更确切地说显示:000

非常感谢您的帮助。提前感谢。

试试这个,

SELECT CONVERT(VARCHAR(50), CAST('2012-08-20 06:23:28:214' as DateTime), 100) 
          AS [OutPut]
-- expected output
--     Aug 20 2012 6:23AM

从上面的例子中,我使用了CAST,以便将string date转换为原始的DateTime数据类型。但是在原始查询中,您可以省略CAST函数,因为您已经提到该列已经属于DateTime数据类型。

SELECT CONVERT(VARCHAR(50), columnDateTime, 100)

SQLFiddle演示

如何在MSSQL Server中设置日期和日期时间格式

使用PHP的strtotime()将sql日期转换为unix时间,然后使用date()重新格式化。=strtotime("2012-08-20 06:23:28.214")是有效的,所以只需要使用字符串操作将最后一个冒号更改为小数点。

或者,这篇博客文章中有一些代码可以用来让MSSQLServer直接返回unix时间。关键功能是SELECT DATEDIFF(second, '1970/01/01 00:00:00', @date)

如果您实际上使用的是MySQL而不是SQL Server,那么您可以使用函数UNIX_TIMESTAMP()来返回当前的unix时间。

DateTime对象的输入字符串类型为u,表示微秒(最多6微秒)。

然而,DateTime::格式确实使用了与标准日期相同的字符串,但以下内容来自输出数据时关于u的文档:

微秒(在PHP 5.2.2中添加)。注意,date()将始终生成000000,因为它需要一个整数参数,而DateTime::format()确实支持微秒