我正在创建一个网络应用程序来分析来自客户自定义数据库的数据。我很难找到将客户端的日志文件条目从 12 小时制转换为 24 小时制的方法。我设置的数据库无法读取 12 小时时间格式,因此显示时间错误。
我使用的日志文件如下所示:
Site_Name,number_of_clicks,DD/MM/YYYY_2:00PM,Interaction_Type
我需要将日志文件转换为如下所示:
Site_Name,number_of_clicks,DD/MM/YYYY_14:00,Interaction_Type
每个日志文件有数以万计的条目,因此无法对每个条目执行此操作。我需要找到一种方法将每个日志文件的条目批量转换为 24 小时制。
任何帮助将不胜感激!
谢谢!
亚伦
最佳答案
如果您想在数据库端执行此操作并且使用 MySql,您可以使用 STR_TO_DATE()
读取它,并将其用作日期时间值
INSERT INTO log (`Site_Name`, `number_of_clicks`, `date`, `Interaction_Type`)
SELECT 'site1', 10, STR_TO_DATE('10/05/2013_2:00PM', '%d/%m/%Y_%l:%i%p'), 1;
或
UPDATE log
SET date = STR_TO_DATE(str_date, '%d/%m/%Y_%l:%i%p');
假设 date
列的类型为 datetime,并且 str_date
列包含 12 小时格式的字符串值。
或者,如果由于某种原因您将其存储为 VARCHAR
并且确实需要将其格式化为 DD/MM/YYYY_14:00
那么您可以使用 DATE_FORMAT( )
DATE_FORMAT(STR_TO_DATE('10/05/2013_2:00PM', '%d/%m/%Y_%l:%i%p'), '%d/%m/%Y_%k:%i')
这将产生
| NEWDATE |
--------------------
| 10/05/2013_14:00 |
就地更新
UPDATE log
SET str_date = DATE_FORMAT(STR_TO_DATE(str_date, '%d/%m/%Y_%l:%i%p'), '%d/%m/%Y_%k:%i');
这里是SQLFiddle 演示。
关于php - 将 mySQL 数据库的日志文件日期时间格式从 12 小时制批量转换为 24 小时制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16909648/