use*_*897 3 php mysql sql datetime date
我需要将数据从MySQL转换为非常特定的日期时间格式,以便它可以定期自动集成到客户端的数据库中.
我想知道是否有办法将格式为YYYY-MM-DD的常用MySQL时间戳hh:mm:ss(例如2012-01-10 10:58:07)转换为描述日期的非常具体的字符串/时间格式如dd-Mos-yy hh:mm:ss.sss(例如07-Sep-10 12:00:00.000).新的日期/时间格式必须精确,低至毫秒值.
我知道有一些聪明的方法来操纵传入的数据将字符串放入MySQL可以接受的日期时间格式,但我似乎无法找到相同的导出数据的工具.我想使用SQL来处理大部分内容,但是如果这是一个更好的工具,那么我对PHP有一些了解.
只需DATE_FORMAT()在创建MySQL查询时使用:
SELECT DATE_FORMAT(date, '%d-%b-%y %H:%m:%s.%f') as date_formatted FROM your_table;
Run Code Online (Sandbox Code Playgroud)
这也可以使用%f选项处理微秒,但是根据您的问题规格提供6位而不是3位数.如果您确实知道日期将需要3位数毫秒,您可以使用SUBSTRING()只返回所需的字符串日期数据.这应该工作
SELECT SUBSTRING(DATE_FORMAT(date, '%d-%b-%y %H:%m:%s.%f'),1,22) as date_formatted FROM your_table;
Run Code Online (Sandbox Code Playgroud)
但你也可以通过0在这样的时间之后明确地设置3来捏造3位数:
SELECT DATE_FORMAT(date, '%d-%b-%y %H:%m:%s.000') as date_formatted FROM your_table;
Run Code Online (Sandbox Code Playgroud)
注意%f现在是怎样的.000.但话虽如此,这不是毫秒精度,因为.000它只是作为文本附加而不是基于实际数据.至少%f使用真实日期数据.
因此,如果基于以上示例DATE_FORMAT并非100%完美满足您的需求,那么使用PHP日期格式化将是最佳处理方式.如果是这种情况,日期/时间数据将存储为Unix时间戳?或者只是一个时间戳?
如果它只是一个时间戳,使用UNIX_TIMESTAMP()将转换它:
SELECT UNIX_TIMESTAMP(date) as date_unixtimestamp FROM your_table;
Run Code Online (Sandbox Code Playgroud)
然后date_unixtimestamp在PHP中按照您的意愿进行格式化.
| 归档时间: |
|
| 查看次数: |
3153 次 |
| 最近记录: |