我试图使用 PHP 从MSSQL Server日期时间表中显示日期和时间,来自 SQL Server 的值是 datetime EX。2012-08-20 06:23:28:214
. 现在我想显示它的确切结果,但它 php 像这个 EX 一样显示它。Aug 20 2012 6:23AM
. 我曾尝试使用 strtotime 但毫秒不显示或显示 : 000
。
非常感谢任何帮助。提前致谢。
我试图使用 PHP 从MSSQL Server日期时间表中显示日期和时间,来自 SQL Server 的值是 datetime EX。2012-08-20 06:23:28:214
. 现在我想显示它的确切结果,但它 php 像这个 EX 一样显示它。Aug 20 2012 6:23AM
. 我曾尝试使用 strtotime 但毫秒不显示或显示 : 000
。
非常感谢任何帮助。提前致谢。
使用 PHP 的 strtotime() 将 sql 日期转换为 unix 时间,然后使用 date() 根据需要重新格式化它。=strtotime("2012-08-20 06:23:28.214")
有效,因此只需使用字符串操作将最后的冒号更改为小数点。
或者,这篇博文有代码,您可以使用这些代码让 MS SQL Server 直接返回 unix 时间。关键功能是SELECT DATEDIFF(second, '1970/01/01 00:00:00', @date)
。
如果您实际上使用的是 MySQL 而不是 SQL Server,则可以使用该函数UNIX_TIMESTAMP()
返回当前的 unix 时间。
试试这个,
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)
DateTime对象的输入字符串类型u
表示微秒(最多六个)。
然而, DateTime::format确实使用与标准日期相同的字符串但以下内容来自有关u
输出数据的文档:
微秒(在 PHP 5.2.2 中添加)。请注意, date() 将始终生成 000000,因为它需要一个整数参数,而 DateTime::format() 确实支持微秒。