内容目录

简介mysql时间类型DATE_FORMAT()函数

简介

今天开发中,做一个功能需要对历史数据进行补充,相信大家也遇到过这样的情况,这个历史数据需要按月份和人的id进行区分,于是想到了mysql的时间格式化,这样直接写个sql脚本就不需要程序去执行了,在做到这一块时我个人对时间这一块没有详细了解过,所以借助这个机会整理一下mysql时间相关的内容,其实我这次主要用的是时间格式转换功能,脚本如下

1INSERT INTO `xxxx`.`xxxxx`(`years_month`, `receipt_user_id`, `receipt_freight_charge`, `receipt_other_charges`, `receipt_waiting_charge`, `receipt_insurance_premium`, `c_u`, `c_t`) 
2SELECT DATE_FORMAT(c_t,'%y%m'), receipt_user_id, IFNULL(SUM(receipt_freight_charge), 0), IFNULL(SUM(receipt_other_charges), 0), 
3IFNULL(SUM(receipt_waiting_charge), 0), IFNULL(SUM(receipt_insurance_premium), 0), 'system', SYSDATE() FROM t_account_truck_drv WHERE c_t < '2019-11-01 00:00:00' GROUP BY DATE_FORMAT(c_t,'%y%m'), receipt_user_id;

mysql时间类型

mysql字段的时间类型分为5种:DATE,DATETIME,TIME,TIMESTAMP,YEAR;
说实话这五种类型我以前只用datetime,为什么用大家都用这个,所以今天趁这个机会整理学习一下。

类型 字节大小 范围 格式 零值 用途
DATE 3 1000-01-01/9999-12-32 YYYY-MM-DD 0000-00-00 日期值
DATETIME 8 1000-01-01 00:00:00/9999-12-32 23:59:59 YYYY-MM-DD hh:mm:ss 0000-00-00 00:00:00 混合日期和时间值
TIME 3 -838:59:59/838:59:59 hh:mm:ss 00:00:00 时间值
TIMESTAMP 4 1970-01-01 00:00:01/2038-01-19 03:14:07 YYYY:MM:DD: hh:mm:ss 0000-00-00 00:00:00 混合日期和时间值,时间戳
YEAR 1 1901/2155 YYYY 0000 年份值

每个时间类型都有一个有效范围和一个零值,当指定的类型的值超过有效范围时,就会使用零值
上表对各个字段的罗列已经很详细了,根据业务的不同选择合适的字段,只是timestamp还有十几年就到期了,感觉这个不太靠谱了其余的也就没啥了

DATE_FORMAT()函数

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。

语法

1DATE_FORMAT(date,format)

date 参数是合法的日期。format 规定日期/时间的输出格式。
示例:

1SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'); //Nov 20 2019 03:11 PM
2SELECT DATE_FORMAT(NOW(),'%m-%d-%Y'); //11-20-2019
3SELECT DATE_FORMAT(NOW(),'%d %b %y'); //20 Nov 19
4SELECT DATE_FORMAT(NOW(),'%d %b %Y %T:%f'); //20 Nov 2019 15:11:22:000000

格式描述:

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

mysql时间类型和格式转换的更多相关文章

  1. mysql 时间类型datetime与timestamp区别比较

    mysql 时间类型datetime与timestamp区别比较 相同点: 显示宽度和格式相同,显示宽度固定在19字符,格式为YYYY-MM-DD HH:MM:SS. 不同点: (1)时间范围不同: ...

  2. MySQL 时间类型字段的分析

    日期类型                存储空间               日期格式                                           日期范围---------- ...

  3. MySQL:MySQL日期数据类型、MySQL时间类型使用总结

    MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间      日期格式                日期范围------------  -------- ...

  4. MySQL日期数据类型、MySQL时间类型使用总结

    MySQL:MySQL日期数据类型.MySQL时间类型使用总结 MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围 ------------ --- ...

  5. mysql 时间类型分类

    MySQL:MySQL日期数据类型.MySQL时间类型使用总结 MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围------------ ---- ...

  6. mysql 时间类型精确到毫秒、微秒及其处理

    一.MySQL 获得毫秒.微秒及对毫秒.微秒的处理 MySQL 较新的版本中(MySQL 6.0.5),也还没有产生微秒的函数,now() 只能精确到秒. MySQL 中也没有存储带有毫秒.微秒的日期 ...

  7. MySQL时间类型及获取、展示处理

    MySQL时间格式 mysql所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值 ...

  8. Mysql时间类型处理

    关于Mysql中时间的处理 最近在读<人类简史>,读第二遍.只有晚上睡觉之前读一点点,有时候觉得一天可以抽出一个专门的时间来看书了,效率应该能高不少. 另外分享个网址可以随心创作 这里有一 ...

  9. Java时间日期字符串格式转换大全

    import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 ...

随机推荐

  1. 2018-12-25-SourceYard-制作源代码包

    title author date CreateTime categories SourceYard 制作源代码包 lindexi 2018-12-25 9:43:7 +0800 2018-12-09 ...

  2. springmvc单Redis实例实现分布式锁(解决锁超时问题)

    一.前言 关于redis分布式锁, 查了很多资料, 发现很多只是实现了最基础的功能, 但是, 并没有解决当锁已超时而业务逻辑还未执行完的问题, 这样会导致: A线程超时时间设为10s(为了解决死锁问题 ...

  3. word 筛选过的网页,网页,单个文件网页

    1)筛选过的网页:保存后会生成 xxx.htm和xxx.files文件夹,删除了还原成Word文档所需的格式标记和功能,也就是说存为纯网页了,文件尺寸小:2)网页:保存后会生成 xxx.htm和xxx ...

  4. H5 FileReader读取文件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 最短路算法(floyed+Dijkstra+bellman-ford+SPFA)

    最短路算法简单模板 一.floyed算法 首先对于floyed算法来说就是最短路径的动态规划解法,时间复杂度为O(n^3) 适用于图中所有点与点之间的最短路径的算法,一般适用于点n较小的情况. Flo ...

  6. CSS 手札记

    Display:Block/Flex 宽度如果不定义会尽可能的扩充外层宽度 在内容区域使用高度百分比和固定像素高度的时候外层设overflow:auto;可以把内层的高度撑开,否则外层会比内层短一截 ...

  7. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  8. vue实现拖拽组件

    可以拖拽,靠边停靠,效果图如下 代码如下: 注意:代码中使用的图片未上传 DragAndDrop组件: <template> <div class="drag" ...

  9. SpringBoot中的五种对静态资源的映射规则

    目录 1.​ webjars:以jar包的方式引入静态资源 2./** 访问当前项目的任何资源 3.首页index.html,被" /** "映射 4.自定义图标 / favico ...

  10. linux下安装MariaDB数据库

    搜素某个文件:find / -name '文件名(或文件夹名)' 1.编辑yum源:vi /etc/yum.repos.d/MariaDB.repo 2.编辑文件时用到的vi命令: vi 打开一个不存 ...