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时间。
u
,表示微秒(最多6微秒)。
然而,DateTime::格式确实使用了与标准日期相同的字符串,但以下内容来自输出数据时关于u
的文档:
微秒(在PHP 5.2.2中添加)。注意,date()将始终生成000000,因为它需要一个整数参数,而DateTime::format()确实支持微秒