构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp. 不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类型来存储日期时间呢? 那我们就一步一步来分析他们的特点,这样我们根据自己的需求选择合适的字段类型来存储 (优点和缺点是比较出来的 , 跟父母从小喜欢拿邻居小孩子跟自己比一样的) datetime 和 timestamp datetime 更像日历上面…
MySQL 日期类型:日期格式.所占存储空间.日期范围 比较.  日期类型        存储空间       日期格式                 日期范围  ------------ ---------   --------------------- -----------------------------------------  datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-…
MySQL 中有多种数据类型可以用于日期和时间的表示,不同的版本可能有所差异,表3-2 中列出了MySQL 5.0 中所支持的日期和时间类型. 这些数据类型的主要区别如下: * 如果要用来表示年月日,通常用DATE 来表示. * 如果要用来表示年月日时分秒,通常用DATETIME 表示. * 如果只用来表示时分秒,通常用TIME 来表示. * 如果需要经常插入或者更新日期为当前系统时间,则通常使用TIMESTAMP 来表示.TIMESTAMP 值返回后显示为“YYYY-MM-DD HH:…
日期时间类型自动转型 -- now().字符串.数字转datetime类型 create table t(dt datetime);insert into t values(now());insert into t values('2007-9-3 12:10:10');insert into t values('2007/9/3 12+10+10');insert into t values('2007#9#3 12+10+10');insert into t values('2007+9+3…
datetime timestamp year date time drop table test;create table test (dt datetime, ts timestamp, y year, d date, t time);insert into test values(now(),now(),now(),now(),now());select * from test;2018-07-14 21:55:13 , 2018-07-14 21:55:13, 2018, 2018-07…
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59 0000-00-00 00:00:00  TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  197001010…
日期时间类型 ①如果要用来表示年月日时分秒,一般使用datetime类型: ②如果要用来表示年月日,一般使用date类型: ③如果要表示时分秒,一般使用time类型: ④如果只是表示年份,一般使用year类型,需要注意的是5.5.27版本之前(不包含该版本)year类型有2位和4位格式这两种表示,在5.5.27版本之后2位格式的year已经不再被支持,year类型的值都会以YYYY的格式显示. year(2)被弃用我个人的理解是因为两位的显示宽度使得该类型表示模糊.不明确(显示的值仅仅是最后两位…
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59  0000-00-00 00:00:00  TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  19700101…
日期时间类型中包含以下几种数据类型: DATE TIME DATETIME TIMESTAMP YEAR 各类型都有具体的取值范围,超出或非法的其他值时,MySQL 会回退到 0.TIMESTAMP 类型是个例外,给它设置一个超出范围的值时,将保存上该类型允许的最大值. MySQL 按标准格式 YYYY-MM-DD hh:mm:ss[.fraction] 输出日期时间,但设置或进行日期时间相关的比较时却支持灵活的多种格式,会自动解析.具体支持的输入格式可参见 Section 9.1.3, "Da…
MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59  0000-00-00 00:00:00  TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  19700101…
最近建表要用到时间类型的数据,但对时间类型的数据一向不了解,就总结了一下.. 一.日期DATE 一个日期.支持的范围是“1000-01-01”以“9999-12-31”.MySQL显示日期用 “YYYY-MM-DD”格式,但允许使用字符串或数字列赋值日期. 1.在一个字符串“YYYY-MM-DD”或“yy-mm-dd”格式.“不严格“语法是允许任何标点符号 字符可以作为之间的日期部分的分隔符. 为,“2012-12-31”,’2012 / 12 / 31’,2012 ^ 12 ^ 31,和201…
win7可以设定每周从哪一天开始,win2003等不能方便的修改.有的是周日开始,有的是周一开始.而工作中有的时候每周是从周六开始算的,有些数据需要按周统计,那么那种方式比较好呢?   通过下面的研究,认为yearweek()是适合的,它返回的是 201311这样的格式.若要把周六当做新的一周的开始,那么就是:   select yearweek(DATE_ADD(now(), INTERVAL 1 DAY));   mysql> select yearweek(DATE_ADD(now(),…
目录 datetime和timestamp区别: timestamp类型字段特殊性: Mysql获取日期时间函数: now() curdate() curtime() Extract() last_day() Mysql日期时间计算函数: date_add() date_sub() datediff(),timediff() str_to_date() date_format(),time_format() MySQL 时区(timezone)转换函数: 参考: datetime和timesta…
mysql支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: DATETIME DATETIME 用于表示 年月日 时分秒,是 DATE和TIME 的组合,并且记录的年份(见上表)比较长久.如果实际应用中有这样的需求,就可以使用 DATETIME 类型. TIMESTAMP  TIMESTAMP 用于表示 年月日 时分秒,但是记录的年份(见上表)比较短暂. TIMESTAMP 和时区相关,更能反映当前时间.当插入日期时,会先转换为本地…
在写查询功能的过程中遇到一个这样的问题:按日期范围查询,sql语句是:where dt>=用户选择起始日期&&dt<=用户选择结束日期.数据库中的数据如图1,我选择的测试数据起始时间是2008-01-06结束日期是2009-06-01.期望的结果应该能查出第一条数据.执行sql语句并无错误,但是查询到的结果为空.在网上查找原因,这才知道字符串时间比较大小是按照数字一位位比较的.只有格式对应的字符串才能比较大小.用户选择的时间格式是YYYY-MM-dd而数据库数据的格式是YYYY…
1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp()   current_timestamp localtime()   localtime localtimestamp()   localtimestamp     这些日期时间函数,都等同于 now().鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数.   1.2 获得当前日期+…
MySQL日期时间函数大全 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,--7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03');  -> 3 WEEKDAY(date)  返回日期date是星期几(0=星期一,1=星期二,--6= 星期天). mysql> select WEEKDAY('1997-10-04 22:23:00');  -> 5 mysql> select WEEKDAY…
MySQL日期时间函数大全 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03');  -> 3 WEEKDAY(date)  返回日期date是星期几(0=星期一,1=星期二,……6= 星期天). mysql> select WEEKDAY('1997-10-04 22:23:00');  -> 5 mysql> select WEEKDAY…
MySQL日期时间函数大全 1.DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03');  -> 3 2.WEEKDAY(date)  返回日期date是星期几(0=星期一,1=星期二,……6= 星期天). mysql> select WEEKDAY('1997-10-04 22:23:00');  -> 5 mysql> select WEE…
select curdate(); --获取当前日期 select last_day(curdate()); --获取当月最后一天. select DATE_ADD(curdate(),interval -day(curdate())+1 day); --获取本月第一天 select date_add(curdate()-day(curdate())+1,interval 1 month); -- 获取下个月的第一天 select DATEDIFF(date_add(curdate()-day(…
微软在备受多年的争议后,终于对日期时间数据类型开刀了,在新版的SQL Server 2008中一口气增加了4种新的日期时间数据类型,包括: Date:一个纯的日期数据类型. Time:一个纯的时间数据类型. DateTime2:新的日期时间类型,将精度提到到了100纳秒. DateTimeOffset:新的日期时间类型,在DateTime2的基础上增加了时区部分. 下面是在SQL Server 2008中日期时间数据类型的一个简单汇总表: 数据类型 格式 取值范围 精度 存储尺寸 date yy…
Mysql 与 java 的时间类型 MySql的时间类型有 Java中与之对应的时间类型   date                 java.sql.Date   Datetime          java.sql.Timestamp   Timestamp       java.sql.Timestamp   Time                 java.sql.Time   Year                 java.sql.Date 如图,mysql中的datetim…
MySQL日期时间Extract函数的优点在于可以选取日期时间的各个部分,从年一直到微秒,让我们对MySQL日期时间的处理更为轻松. MySQL 日期时间 Extract(选取)函数.1. 选取日期时间的各个部分:日期.时间.年.季度.月.日.小时.分钟.秒.微秒 set @dt = '2008-09-10 07:15:30.123456'; select date(@dt); -- 2008-09-10 select time(@dt); -- 07:15:30.123456 select y…
-- MySQL日期时间处理函数SELECT NOW() FROM DUAL;-- 当前日期时间:2017-05-12 11:41:47-- 在MySQL里也存在和Oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用.-- 那么MySQL中就不用DUAL了吧.SELECT NOW();-- 当前日期时间:2017-05-12 11:41:55-- 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下…
一.原来的日期时间 Java1.0中包含了一个Date类,但是它的大多数方法已经在Java 1.1引入Calendar类之后被弃用了.而Calendar并不比Date好多少.它们面临的问题是: ① 可变性:象日期和时间这样的类对象应该是不可变的.Calendar类中可以使用三种方法更改日历字段:set().add() 和 roll(). ② 偏移性:Date中的年份是从1900开始的,而月份都是从0开始的. ③格式化:格式化只对Date有用,Calendar则不行. ④此外,它们也不是线程安全的…
MySQL中有如下几个时间类型:date.time.datetime.timestamp.year MySQL数据类型           含义 date                     只存储年月日,'2018-07-12' time                     只存储时分秒,'09:51:02'    datetime              存储年月日 时分秒,'2018-07-12 09:51:02' timestamp            存储年月日 时分秒,'…
四种日期格式: 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值. YEAR         0000 YYYY 年  '2015' DATE         0000-00-00  YYYY-MM-DD     日期 '2015-04-24' TIME          00:00:00  HH:MM:SS        时间'12:25:36' DATETIME       0000-00-00 00:00:00  …
 获取函数 mysql默认的时间格式: yyyy-MM-dd 或者 yyyy-MM-dd HH:mm:ss 1. Date() 返回日期部分, date('2018-02-14 17:03:04') = '2018-02-14' 2. Time() 返回时间部分, time('2018-02-14 17:03:04') = '17:03:04' 3. CurDate() 返回当前时间的日期部分 4. CurTime() 返回当前时间的时间部分 5. now() 代表当前时间, 包含日期+时间 6…
首先理解mysql时间存储类型,与使用场景 一些帮助理解的资料: 摘自:MySQL如何存储时间datetime还是timestamp MySql中关于日期的类型有Date/Datetime/Timestamp三种类型. MySQL 的默认 DATE 字段格式是 YYYY-MM-DD.支持的范围是 1000-01-01 到 9999-12-31. DATETIME 是一个结合日期和时间的类型,并保存数据为 YYYY-MM-DD HH:MM:SS 格式.它允许的范围从 1000-01-01 00:0…
在MySQL中对于时间的存储自己见表的时候都是设置的varchar类型的,感觉挺方便的. 昨天拿别人建好的表写代码,发现这张表中时间类型为datetime的,凭感觉试了一下不行,网上查了刚开始试了好几个都是不对的,一脸懵逼. -----------------------------------------------------------------------------------------------------------------------------------------…