2

我试图使用 PHP 从MSSQL Server日期时间表中显示日期和时间,来自 SQL Server 的值是 datetime EX。2012-08-20 06:23:28:214. 现在我想显示它的确切结果,但它 php 像这个 EX 一样显示它。Aug 20 2012 6:23AM. 我曾尝试使用 strtotime 但毫秒不显示或显示 : 000

非常感谢任何帮助。提前致谢。

4

3 回答 3

1

使用 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 时间。

于 2012-08-26T23:08:49.063 回答
1

试试这个,

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 中格式化日期和日期时间

于 2012-08-27T00:21:29.657 回答
0

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

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

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

于 2012-08-26T23:19:02.173 回答