mysql 查询数据库时时间戳的转换

本文介绍如何使用MySQL将时间戳转换为日期格式,并提供了一个实际的例子,展示了如何在SQL查询中处理13位时间戳。
最近在做mysql数据库导出为excel,用phpExcel自己封装了一个公用类,需要传递sql语句进行检索要导出的数据。当导出的数据有时间戳时要让其自动转换为时间,经过查阅资料问题已经解决,把涉及到的方法在这里共享给大家。
1、将时间转换为时间戳
select unix_timestamp('2009-10-26 10-06-07')
如果参数为空,则处理为当前时间
2、将时间戳转换为时间
select from_unixtime(1256540102)
有些应用生成的时间戳是比这个多出三位,是毫秒表示,如果要转换,需要先将最后三位去掉,否则返回NULL

注意:如果时间戳为13(精确到毫秒级)位需要先出去除以1000再转换。

例:SELECT (@rowNum:=@rowNum+1) as rowNo,cm_log.l_category,cm_log.l_desc,cm_user.u_name as l_user,
FROM_UNIXTIME(cm_log.l_time/1000,'%Y-%m-%d %H:%i:%S')as l_time
FROM `数据库名`.`表名`
join `数据库名`.`cm_user` on cm_user.u_id = cm_log.l_user
### MySQL 时间戳函数查询 #### 获取当前时间戳MySQL中,`CURRENT_TIMESTAMP()` 或 `current_timestamp` 可用于获取当前的时间戳[^1]。 ```sql SELECT CURRENT_TIMESTAMP(); ``` #### 将Unix时间戳转换为日期间格式 `FROM_UNIXTIME(unix_timestamp, format)` 函数能够把Unix时间戳转化为指定格式的日期间字符串。此函数允许第二个参数自定义输出格式[^2]。 ```sql SELECT FROM_UNIXTIME(1451997924, '%Y-%m-%d %H:%i:%s'); ``` 上述语句会返回类似于 "2016-01-05 20:45:24" 的结果。 #### 格式化现有日期间为特定模式 对于已经存在于数据库中的日期间数据,可以通过 `DATE_FORMAT(date, format)` 来改变其展示形式[^3]。 ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); ``` 这将给出形如 "2016-01-05" 这样的年月日表示法。 #### 把给定的日期间字符串解析成内部日期类型 当面对外部输入或存储于文本字段内的日期信息,可利用 `STR_TO_DATE(string, format)` 实现从字符串到标准日期类型的转变。 ```sql SELECT STR_TO_DATE('2016-01-02', '%Y-%m-%d %H'); ``` 该命令的结果将是带有默认小数 (即零点整) 的完整日期记录:"2016-01-02 00:00:00". #### 计算给定日期对应的时间戳数值 如果需要得到某个具体刻所代表的Unix时间戳,则应该调用 `UNIX_TIMESTAMP(datetime_expression)` 方法. ```sql SELECT UNIX_TIMESTAMP('2016-07-11'); ``` 执行这段代码后可以获得相应的秒级时间戳值:1468166400.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值