mysql时间类型和格式转换
内容目录
简介
今天开发中,做一个功能需要对历史数据进行补充,相信大家也遇到过这样的情况,这个历史数据需要按月份和人的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时间类型和格式转换的更多相关文章
- mysql 时间类型datetime与timestamp区别比较
mysql 时间类型datetime与timestamp区别比较 相同点: 显示宽度和格式相同,显示宽度固定在19字符,格式为YYYY-MM-DD HH:MM:SS. 不同点: (1)时间范围不同: ...
- MySQL 时间类型字段的分析
日期类型 存储空间 日期格式 日期范围---------- ...
- MySQL:MySQL日期数据类型、MySQL时间类型使用总结
MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围------------ -------- ...
- MySQL日期数据类型、MySQL时间类型使用总结
MySQL:MySQL日期数据类型.MySQL时间类型使用总结 MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围 ------------ --- ...
- mysql 时间类型分类
MySQL:MySQL日期数据类型.MySQL时间类型使用总结 MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型 存储空间 日期格式 日期范围------------ ---- ...
- mysql 时间类型精确到毫秒、微秒及其处理
一.MySQL 获得毫秒.微秒及对毫秒.微秒的处理 MySQL 较新的版本中(MySQL 6.0.5),也还没有产生微秒的函数,now() 只能精确到秒. MySQL 中也没有存储带有毫秒.微秒的日期 ...
- MySQL时间类型及获取、展示处理
MySQL时间格式 mysql所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值 ...
- Mysql时间类型处理
关于Mysql中时间的处理 最近在读<人类简史>,读第二遍.只有晚上睡觉之前读一点点,有时候觉得一天可以抽出一个专门的时间来看书了,效率应该能高不少. 另外分享个网址可以随心创作 这里有一 ...
- Java时间日期字符串格式转换大全
import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @return 返回时间类型 ...
随机推荐
- java.util.NoSuchElementException: No value present
错误: java.util.NoSuchElementException: No value present 原因: 经查询博客Java 8 Optional类深度解析发现,究其原因为: 在空的Opt ...
- 解决从旧格式的 csproj 迁移到新格式的 csproj 格式 AssemblyInfo 文件值重复问题
现在很多小伙伴开始使用了 dotnet core 项目,但是如果是从以前的 dotnet framework 的项目修改为 dotnet core 项目格式,会发现编译的时候出现了 AssemblyI ...
- es6笔记 day2---字符串模板及字符串新增
字符串连接案例 注意:引号变了,为键盘数字1旁边的飘花键 以前的老写法是在字符串中加入“+”号,给几个字符串给串起来,那种写法是要死人的. 现在只需加上一对``即可将字符串连接起来 --------- ...
- Hadoop Authentication
我被被派去做别的事情了,所以与hadoop相关的工作就只能搁下.写篇总结,把最近遇到的和kerberos相关的东西列一下. JAAS是Java 认证和授权服务(Java Authentication ...
- 为什么IIS应用程序池回收时间默认被设置为1740分钟?
作者:斯科特 福赛斯/Scott Forsyth日期:2013/04/06地址:http://weblogs.asp.net/owscott/why-is-the-iis-default-app-po ...
- 洛谷$P4211\ [LNOI2014]\ LCA$ 树链剖分+线段树
正解:树剖+线段树 解题报告: 传送门$QwQ$ 看到$dep[lca]$啥的就想到之前托腮腮$CSP$模拟$D1T3$的那个套路,,, 然后试下这个想法,于是$dep[lca(x,y)]=\sum_ ...
- ECMAScript新语法、特性总结
前言 从2015年的ES6开始,JavaScript的语言标准每年都在更新,其中尤其以ES6的力度之大,到现在ES10已经发布,这里总结一下新语法. 参考:阮一峰 ECMAScript 6 教程 .E ...
- Java后台创建Socket服务接收硬件终端发送的数据
最近项目中有遇到后台接收硬件终端发送的数据并解析存储的需求,代码总结如下(有时间再来一一讲解,最近比较忙): @Override public void start() { ExecutorServi ...
- 「CH2101」可达性统计 解题报告
CH2101 可达性统计 描述 给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量.N,M≤30000. 输入格式 第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到 ...
- gulp的简介以及使用方法
环境介绍: pro环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境. pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样. test环境:测试环境,外部用户 ...