php – 将MySQL日期时间转换为非常特定的格式以便导出

我需要将数据从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有一定的了解.

解决方法:

在创建MySQL查询时只需使用DATE_FORMAT()

SELECT DATE_FORMAT(date, '%d-%b-%y %H:%m:%s.%f') as date_formatted FROM your_table;

这也使用%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;

但你也可以通过在这样的时间后明确设置3 0来捏造3位数:

SELECT DATE_FORMAT(date, '%d-%b-%y %H:%m:%s.000') as date_formatted FROM your_table;

注意%f现在是如何.000.但是那说,这不是毫秒级的精度,因为.000只是简单地附加为文本&不是基于真实数据.至少%f正在处理实时数据.

因此,如果基于上面的示例,DATE_FORMAT并非100%完美满足您的需求,那么使用PHP日期格式化将是最好的处理方式.如果是这种情况,日期/时间数据将存储为Unix时间戳?或者只是一个时间戳?

如果它只是一个时间戳,使用UNIX_TIMESTAMP()将转换它:

SELECT UNIX_TIMESTAMP(date) as date_unixtimestamp FROM your_table;

然后在PHP中按照您的意愿获取date_unixtimestamp和格式.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...