Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
【1】Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。
【2】Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
【3】Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
扩展资料
切记不要用字符串存储日期
这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:
1、字符串占用的空间更大。
2、字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。
DateTime 类型没有时区信息的
DateTime 类型是没有时区信息的(时区无关) ,DateTime 类型保存的时间都是当前会话所设置的时区对应的时间。
当你的时区更换之后,比如你的服务器更换地址或者更换客户端连接时区设置的话,就会导致你从数据库中读出的时间错误。不要小看这个问题,很多系统就是因为这个问题闹出了很多笑话。
Timestamp 和时区有关。Timestamp 类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。
其实时间字段的标准数据类型是用 date(oracle)、 datetime(sql server)等
当要使用年月日时,可以用系统自带的一些函数来截取你想要的时间,至于这些函数在不同的平台下是有些不同的,百度一下“SQL 时间函数”的百度百科里面可以找到详细的解答
to_date()是将字符串转为日期来进行处理的,如果转换为年月日的方式:to_date(‘2021-01-01’,“YYYY-MM-DD”)得到的结果是:2021-01-01 00:00:00
转换为年月的方式:to_date(‘2021-08’,“YYYY-MM”)
得到的转换结果:2021-08-01 00:00:00
所以用to_date()获取时间范围的时候要注意最后一个月份是获取不到的。
select SUM(data1) as num1,sum(data2) as num2,to_char(date_time,'YYYY-MM') as dateTime from test_data where date_time between to_date('2021-01','YYYY-MM') and to_date('2021-08','YYYY-MM')
GROUP BY dateTime
1
2
1
2
查询结果:
查到的数据为7个月的
to_char():
在进行日期转换的时候,应该是将数据库中所要查询的时间字段转换为字符串来使用。
(date_time字段为日期类型,不能为字符串,如果为字符串,可以先用转为日期类型的)
例如:to_char(to_date(date1,‘yyyy-MM’),‘YYYY-MM’):这里的date1为字符串类型
to_char(date_time,‘YYYY-MM’) between ‘2021-01’ and ‘2021-08’
它获取到的结果为:
【2021-01-01 00:00:00,2021-08-31 23:59:59]
select SUM(data1) as num3,sum(data2) as num4,to_char(date_time,'YYYY-MM') as dateTime from test_data where to_char(date_time,'YYYY-MM') between '2021-01' and '2021-08'
GROUP BY dateTime
查询结果:
查询到的数据为8个月的
建议:在查询某一时间范围的数据时,建议使用to_char()比较简单。
文章知识点与官方知识档案匹配
MySQL入门技能树SQL高级技巧CTE和递归查询
29891 人正在系统学习中
点击阅读全文
打开CSDN,阅读体验更佳
To_Date函数用法(转)_nws361的博客_todate
1.在使用Oracle的to_date函数来做日期转换时,可能会直觉地采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。如:select to_date('2005-01-01 13:14:20','yyyy-MM...
Oracle to_date()函数的用法介绍_weixin_35656623的博客
1. 在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用"yyyy-MM-dd HH:mm:ss"的格式作为格式进行转换,但是在Oracle中会引起错误:"ORA 01810 格式代码出现两次"。
数据库中To_date()、to_char()、substr()对时间处理
To_date()、to_char()、substr()对时间处理 YYYY、YYY、YY 分别代表4位、3位、2位的数字年 YEAR 年的拼写 MM 数字月 MONTH 月的全拼 MON 月的缩写 DD 数字日 DAY 星期的全拼 DY 星期的缩写 AM 表示上午或者下午 HH24、HH12 12小时制或24小时制 MI 分钟 SS 秒钟 一、to_date() (时间格式Y
继续访问
To_Date函数用法
spl>select * from emp where dates between to_date('2007-06-12 10:00:00', 'yyyy-mm-dd hh24:mi:ss') and to_date('2007-06-12 10:00:00', 'yyyy-mm-dd ...
继续访问
Oracle中的to_date()函数
to_date()与24小时制表示法及mm分钟的显示: 一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。 如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd ...
继续访问
mysql数据库的to_data_MySQL数据库基本知识
数据库基础知识1.数据库存储结构1.1 表是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。1.2 表包括 行和列1.2.1 行 :被称为数据/记录(data)1.2.2 列 :被称为字段(column)1.3 每个字段都有 名字 数据类型 相关的约束 等属性。1.4 MySQL的两个引擎① MyISAM 数据库的自带的数据库用,相比较 InnoDB 有自动统计行的特点。平常我...
继续访问
oracle 时间函数 TO_DATE
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm TO_DATE(char [, fmt [, 'nlsparam' ] ]) 参数 该TO_DATE()函数接受三个参数: 1) char 是一个字符串值,它被转换为一个DATE值。它可以是任何数据类型CHAR,VARCHAR2,NC...
继续访问
to_date() 整理
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年显示值:07 yyy three digits 三位年显示值:007 yyyy four digits 四位年
继续访问
热门推荐 Oracle数据库中 to_date()函数的用法
在Oracle数据库中,Oracle to_date()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法to_date()与24小时制表示法及mm分钟的显示:一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 018
继续访问
SQL之to_date()
日期例子: SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24')...
继续访问
to_Date()用法
SQL>ALTER SESSION SET NLS_DATE_FORMAT = YYYY-MM-DD HH24:MI:SS会话已更改。SQL>SELECT TO_DATE(2006-05-01 19:25:34, YYYY-MM-DD HH24:MI:SS) FROM DUALTO_DATE(2006-05-01-------------------2006-05
继续访问
关于orcale sql中的to_char()和to_date()方法
TO_DATE()方法 首先从在网上看到别人to_date()方法的使用如下: SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL //结果:2006/5/1 19:25:34 SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DU...
继续访问
oracle中to_date的使用
oracle中to_date的使用 1、采用to_date(‘2021-05-17 13:14:32’,‘yyyy-MM-dd HH:mm:ss’)的形式,会有提示: 原因是SQL并不区分大小写,MM与mm被认为是同一格式,正确的方式是将mm改为mi来代表分钟。 2、采用to_date(‘2021-05-17 13:14:32’,‘yyyy-MM-dd HH:mi:ss’)的形式会有提示: 这是因为HH为12小时制,要想使用24小时制的SQL应该使用HH24来表示小时。 正确的写法是: select to_
继续访问
ORACLE中TO_DATE()函数的使用
日期格式参数 含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO标准的年中的第几周 IYYY ISO标准的四位年份 YYYY 四位年份 YYY,YY,Y 年份的最后三位,两位,一位 HH 小时,按12小时计 HH24 小时,按24小时计 MI 分 SS 秒 MM 月 Mon 月份的简写 Month 月份的全名 W 该月的第几个星期 WW 年中的第几
继续访问
用python构建机器学习模型分析空气质量
空气质量(air quality)的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。空气污染是一个复杂的现象,在特定时间和地点空气污染物浓度受到许多因素影响。来自固定和流动污染源的人为污染物排放大小是影响空气质量的最主要因素之一,其中包括车辆、船舶、飞机的尾气、工业企业生产排放、居民生活和取暖、垃圾焚烧等。城市的发展密度、地形地貌和气象等也是影响空气质量的重要因素。
继续访问
【Oracle】to_data() to_char()用法解析
1、转换函数 与date *** 作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。 如to_date(''2004-11-27 13:......
继续访问
最新发布 TO_DATE与TO_CHAR
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits 三位年 显示值:007 yyyy four digits 四位年 显示值:2007 Month: ...
继续访问
to_char与to_date的用法
to_char与to_date的用法 to_char to_char 语法 : to_char(日期 , ‘日期格式’) 作用 : 将日期通过指定格式进行字符串转换 Date =>String to_date to_date 语法 :to_date(字符串 , ‘日期格式’) 作用 : 将字符串通过指定格式进行日期转换 String =>Date ...
继续访问
【Oracle】问题——Oracle中to_date()方法
今天写项目的时候遇见一个坑,花费了半个小时才搞定,特此记录一下。 oracle数据可中可以存储Date数据类型,有一个相关的方法to_date(),可以将String类型的数据转换成Date类型。 示例: insert into XXX(id,name,date) values("1","张三",to_date('2015-11-11 21:21:21','yyyy/MM/dd HH24:M...
继续访问
to_date() 与 to_char() 日期和字符串转换
to_date(“要转换的字符串”,“转换的格式”) 两个参数的格式必须匹配,否则会报错。 即按照第二个参数的格式解释第一个参数。 to_char(日期,“转换格式” ) 即把给定的日期按照“转换格式”转换。 转换的格式: 表示year的:y 表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年 表示month的:mm 用2位数字表示月;mon 用简写形式 比如11月或者nov ;month 用全称 比如11月或者november 表示day的:dd 表示当月第
继续访问
Oracle时间类型
SQL>ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'会话已更改。 SQL>SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)