博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql中的timestamp类型时间比较:unix_timestamp函数
阅读量:6220 次
发布时间:2019-06-21

本文共 1339 字,大约阅读时间需要 4 分钟。

在mysql中,某字段的类型设置为了timestamp,那么我们现在希望取出指定时间段的记录,该如何做呢?

在php中有time()和strtotime()来进行日期和时间戳的格式化,而在mysql中也有类似的函数,它们就是unix_timestamp()和from_unixtime()函数

举例说明,参考如下sql语句:

1 Select *
2 FROM (`x60_usr_subscribe`)
3 Where `status` =  1
4 AND unix_timestamp(stime) > 1351085010
5 AND unix_timestamp(stime) < 1354685130
1 Select
2 (UNIX_TIMESTAMP(endtime)-UNIX_TIMESTAMP(startime))/31536000, `year`, `id`, `name`
3 FROM `testime`
4 LIMIT 0,30

关于函数UNIX_TIMESTAMP()与UNIX_TIMESTAMP(date)

若无参数调用,则返回一个 Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整数。若用date 来调用 UNIX_TIMESTAMP(),它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回。date 可以是一个 DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。

1 mysql> Select UNIX_TIMESTAMP();
2 ->  1354684110
3 mysql> Select UNIX_TIMESTAMP('1997-10-04 22:23:00');
4 -> 875996580

当 UNIX_TIMESTAMP 被用在 TIMESTAMP列时, 函数直接返回内部时戳值, 而不进行任何隐含的 “string-to-Unix-timestamp”转化。假如你向UNIX_TIMESTAMP()传递一个溢出日期,它会返回 0,但请注意只有基本范围检查会被履行 (年份从1970 到 2037, 月份从01 到12,日期从 01 到31)。

       这里我们可以使用FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)
来格式化一个UNIX_TIMESTAMP()时间戳,它将返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的unix_timestamp参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。
若format 已经给出,则结果的格式是根据format 字符串而定。 format 可以包含同DATE_FORMAT() 函数输入项列表中相同的说明符。

此外,mysql中还有其他众多关于时间日期的函数,具体可参看这里:


转载于:https://www.cnblogs.com/wych/p/4065154.html

你可能感兴趣的文章
JAVA的三大基本特性分析
查看>>
我的友情链接
查看>>
大型网站系统架构分析
查看>>
Timer和TimeTask简介
查看>>
Struts2之【控制标签】
查看>>
Symmetrix的远程复制技术SRDF的实现及解决方案
查看>>
微信第三方细节
查看>>
Hyperledger Fabric Node.js如何使用基于通道的事件服务
查看>>
c编程应注意到的细节问题
查看>>
linux文件类型及权限
查看>>
深入浅出Vue 使用中的小技巧
查看>>
Metasploit 5.0释出!轻松对多主机渗透测试
查看>>
缓存伪共享问题以及解决方案缓存行填充
查看>>
linux的简单命令
查看>>
SpringMVC常见面试题总结【概念】
查看>>
zookeeper使用和原理探究(一)
查看>>
OSChina 周五乱弹 —— 为什么程序媛那么少?
查看>>
OSChina 周二乱弹 —— 我有垃圾,你有桶么
查看>>
前端那些事之工具涵数库--underscore
查看>>
shell script advanced
查看>>