mysql time类型 日期和时间属于哪种数据类型

在日常的程序开发过程中,我们通常需要去记录时间,好比记录某条代码的创建及修改时间。而MySQL 本身就提供了日期类型,比如 DATETIME,TIMESTAMEP 等,因此我们完全可以利用MySQL去进行时间和日期的记录,下面就让我们一起看看MySQL常用日期类型的获取获取方法吧。

mysql time类型 日期和时间属于哪种数据类型

MySQL 中的日期类型

MySQL 数据库中常见的日期类型有 YEAR、DATE、TIME、DATETIME、TIMESTAMEP。因为一般都需要将日期精确到秒,其中比较合适的有DATETIME,TIMESTAMEP。

DATETIME

DATETIME 在数据库中存储的形式为:YYYY-MM-DD HH:MM:SS,固定占用 8 个字节。

从 MySQL 5.6 版本开始,DATETIME 类型支持毫秒,DATETIME(N) 中的 N 表示毫秒的精度。例如,DATETIME(6) 表示可以存储 6 位的毫秒值。

TIMESTAMEP

TIMESTAMP 实际存储的内容为‘1970-01-01 00:00:00’到现在的毫秒数。在 MySQL 中,由于类型 TIMESTAMP 占用 4 个字节,因此其存储的时间上限只能到‘2038-01-19 03:14:07’。

从 MySQL 5.6 版本开始,类型 TIMESTAMP 也能支持毫秒。与 DATETIME 不同的是,若带有毫秒时,类型 TIMESTAMP 占用 7 个字节,而 DATETIME 无论是否存储毫秒信息,都占用 8 个字节。

类型 TIMESTAMP 最大的优点是可以带有时区属性,因为它本质上是从毫秒转化而来。如果你的业务需要对应不同的国家时区,那么类型 TIMESTAMP 是一种不错的选择。比如新闻类的业务,通常用户想知道这篇新闻发布时对应的自己国家时间,那么 TIMESTAMP 是一种选择。Timestamp 类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。

mysql time类型 日期和时间属于哪种数据类型

获取日期和时间

1、获得当前日期函数:curdate()current_date()

2、获得当前时间函数:curtime()

3、获得当前日期+时间:now()

4、MySQL dayof… 函数:dayofweek()dayofmonth()dayofyear()分别返回日期参数,在一周、一月、一年中的位置。(注:周日=1,周一=2,周二=3,……)

5、返回本月的天数:

select day(last_day(now()));

日期和时间相关函数

  • CURDATE 和 CURRENT_DATE 两个函数作用相同,返回当前系统的日期值。
  • CURTIME 和 CURRENT_TIME 两个函数作用相同,返回当前系统的时间值。
  • NOW() 和 SYSDATE() 两个函数作用相同,返回当前系统的日期和时间值。
  • UNIX_TIMESTAMP 获取UNIX时间戳函数,返回一个以 UNIX 时间戳为基础的无符号整数。
  • FROM_UNIXTIME 将 UNIX 时间戳转换为时间格式,与UNIX_TIMESTAMP互为反函数。
  • TO_DAYS() 提取日期值并返回自公元0年到现在的天数。
  • DAY() 获取指定日期或时间中的天值。
  • DATE() 获取指定日期或时间中的日期。
  • TIME() 获取指定日期或时间中的时间。
  • MONTH 获取指定日期中的月份。
  • WEEK 获取指定日期是一年中的第几周。
  • YEAR 获取年份。
  • QUARTER 获取日期所在的季度值。
  • DATE_ADD 和 ADDDATE 两个函数功能相同,都是向日期添加指定的时间间隔。
  • DATE_SUB 和 SUBDATE 两个函数功能相同,都是向日期减去指定的时间间隔。
  • ADDTIME 时间加法运算,在原始时间上添加指定的时间。
  • SUBTIME 时间减法运算,在原始时间上减去指定的时间。
  • DATEDIFF 获取两个日期之间间隔,返回参数 1 减去参数 2 的值。
  • DATE_FORMAT 格式化指定的日期,根据参数返回指定格式的值。

mysql time类型 日期和时间属于哪种数据类型

常用日期和时间获取语法集锦

1、本周时间(起始)

select date_sub(CURRENT_DATE(),interval dayofweek(curdate())-2 day) as Fdate

2、本周时间(结束)

select date_add(CURRENT_DATE(),interval dayofweek(curdate())+3 day) as Fdate

3、上周时间(起始)

select date_sub(CURRENT_DATE(),interval dayofweek(curdate())+5 day) as Fdate

4、上周时间(结束)

select date_sub(CURRENT_DATE(),interval dayofweek(curdate())-1 day) as Fdate

5、本月时间(起始)

select DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) as Fdate

6、本月时间(结束)

Select date_add(current_date(),interval day(last_day(CURDATE())) -day(CURDATE()) day) as Fdate

7、上月时间(起始)

select DATE_SUB(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE()) DAY),interval day(last_day(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE()) DAY)))- 1 day) as Fdate

8、上月时间(结束)

select DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE()) DAY) as Fdate

9、今年时间(起始)

select makedate(year(curdate()),1) as FDate

10、今年时间(结束)

select DATE_SUB(makedate(year(curdate())+1,1) ,INTERVAL 1 day) as Fdate

11、去年时间(起始)

select makedate(year(curdate())-1,1) as Fdate

12、去年时间(结束)

select DATE_SUB(makedate(year(curdate()),1) ,INTERVAL 1 day) as FDate

本站部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考。本站仅提供信息存储空间服务,如有侵权请联系我们删除。如若转载,请注明出处:https://sndnote.com/tougao/3493.html

(0)
开飞机的奥特曼开飞机的奥特曼

相关推荐