在Oracle中准确来说一个礼拜是从星期日开始到星期六结束的,其中时间差以天数为单位。...具体用法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换日期格式,注意,前后两者要一一对应。...):计算当时区timezone1中的日期和时间是date时候,返回时区timezone2中的日期和时间 select NEW_TIME(to_date('2018-05-14 12:00:00','yyyy-mm-dd...dual; 结果:-3 18、NEXT_DAY(d,string)函数:准确来说一个礼拜是从星期日开始到星期六结束的。...例如next_day(sysdate,6)是从当前开始下一个星期五。很多的查询条件和统计都需要求得一周的时间段,也就是星期一到星期日的时间段。给出日期d和星期string之后计算下一个星期的日期.
date、datetime 的区别 顾名思义,date 日期,datetime 日期时间,所以 date 是 datetime 的日期部分 MySQL 以 格式检索和显示 datetime 值 YYYY-MM-DD...它们都是以 格式检索和显示日期时间 YYYY-MM-DD hh:mm:ss 第一个区别是 timestamp 支持的日期时间范围不如 datetime 大 timestamp 支持的日期时间范围 是...或 timestamp 值可以包括尾部小数秒部分 精度最高可达微秒(6 位小数位) 插入到 datetime 或 timestamp 列的值中的任何小数部分都会被保留而不是被丢弃 保留小数部分后,格式变成...因为 timestamp 存储的是 UTC 时间,所以会有时区的概念,这也是区别于 datetime 地方之一 MySQL 对于 timestamp 字段值,会将客户端插入的时间从当前时区转换为 UTC...:00:01.000000' 到 '2038-01-19 03:14:07.999999' 的值 但 datetime 可以存储 '1000-01-01 00:00:00.000000' 到 '9999
当取值为01到69时,表示2001到2069; 当取值为70到99时,表示1970到1999; 当取值整数的0或00添加的话,那么是0000年; 当取值是日期/字符串的'0'添加的话,是2000年。...从MySQL5.5.27开始,2位格式的YEAR已经不推荐使用。...YEAR默认格式就是“YYYY”,没必要写成YEAR(4),从MySQL 8.0.19开始,不推荐使用指定显示宽度的YEAR(4)数据类型。...以YY-MM-DD格式或者YYMMDD格式表示的字符串日期,此格式中,年份为两位数值或字符串满足YEAR类型的格式条件为:当年份取值为00到69时,会被转化为2000到2069;当年份取值为70到99时...但是TIMESTAMP存储的时间范围比DATETIME要小很多,只能存储“1970-01-01 00:00:01 UTC”到“2038-01-19 03:14:07 UTC”之间的时间。
当取值为01到69时,表示2001到2069; 当取值为70到99时,表示1970到1999; 当取值整数的0或00添加的话,那么是0000年; 当取值是日期/字符串的'0'添加的话,是2000年。...从MySQL5.5.27开始,2位格式的YEAR已经不推荐使用。...YEAR默认格式就是YYYY,没必要写成YEAR(4),从MySQL 8.0.19开始,不推荐使用指定显示宽度的YEAR(4)数据类型。 TIME类型 用途:用于存储时间,不包含日期部分。...可以使用CURRENT_DATE()或NOW()函数插入当前系统日期。 DATETIME类型 用途:用于存储日期和时间,精确到秒。 格式:YYYY-MM-DD HH:MM:SS。...取值范围:1970-01-01 00:00:01 UTC~2038-01-19 03:14:07 UTC。 存储需求:4个字节。
MySQL 按标准格式 YYYY-MM-DD hh:mm:ss[.fraction] 输出日期时间,但设置或进行日期时间相关的比较时却支持灵活的多种格式,会自动解析。...DATE 日期格式不带时间 TIME 部分,查询时输出格式为 YYYY-MM-DD,取值范围为 1000-01-01 到 9999-12-31。...DATETIME 包含日期及时间,输出格式为 YYYY-MM-DD hh:mm:ss,取值范围 1000-01-01 00:00:00 到 9999-12-31 23:59:59。...TIMESTAMP 同 DATETIME,但取值范围基于 UTC 时间,较 DATETIME 要小,为 1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC...在存储时会根据当前时区转成 UTC(universal time zone) 存储,查询时也会根据时区从 UTC 转换到具体的时间。对于支持多语及国际化全球部署的应用来说,显得尤为方便。
在MySQL中DATE检索和显示的格式是'YYYY-MM-DD'(年月日例如2018-11-17).DATE的支持的取值范围是'1000-01-01' to '9999-12-31' The DATETIME...在MySQL中DATETIME检索和显示的格式是'YYYY-MM-DD HH:MM:SS''(年月日例如2018-11-17 14:30:45).DATETIME的支持的取值范围是'1000-01-01...由于有这些小数,所以它们格式化以后展现形式是'YYYY-MM-DD HH:MM:SS[.fraction]', DATETIME的取值范围为'1000-01-01 00:00:00.000000' 到...MySQL将 TIMESTAMP 的值从当前时区转换成UTC进行存储,并且会从UTC转成当前时区进行检索(这样就不会发生出现别的类型例如DATETIME)。...MySQL 不接受 TIMESTAMP的值(在天或者月份里只有一个0,在MySQL中这是无效的日期)。这条规则唯一的例外是0它被理解为'0000-00-00 00:00:00'。
DATE_ADD() 将时间值(间隔)添加到日期值 DATE_FORMAT() 按指定格式格式化日期 DATE_SUB() 从日期中减去时间值(间隔) DATEDIFF() 减去两个日期 DAY()...TO_DAYS() 返回转换为天的日期参数 TO_SECONDS() 返回从0年起转换为秒的日期或日期时间参数 UNIX_TIMESTAMP() 返回Unix时间戳 UTC_DATE() 返回当前UTC...获得当前日期时间 CURDATE() 以“YYYY-MM-DD”或YYYYMMDD格式返回当前日期,具体取决于函数是在字符串上下文中使用还是在数字上下文中使用。...如果指定的fsp精度是从0到6的小数位数,则指定从0到6的小数精度。...NOW([fsp]) 以'YYYY-MM-DD hh:MM:ss'或YYYYMMDDhhmmss格式返回当前日期和时间,具体取决于函数是在字符串上下文中使用还是在数字上下文中使用。
CURDATE() 将当前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。...假如你向UNIX_TIMESTAMP()传递一个溢出日期,它会返回 0,但请注意只有基本范围检查会被履行 (年份从1970 到 2037, 月份从01到12,日期从 01 到31)。...UTC_DATE, UTC_DATE() 返回当前 UTC日期值,其格式为 'YYYY-MM-DD' 或 YYYYMMDD,具体格式取决于函数是否用在字符串或数字语境中。...) 返回当前UTC日期及时间值,格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS,具体格式根据该函数是否用在字符串或数字语境而定。...,范围是从1到53。
TABLE t1 (t TIME(3), dt DATETIME(6), ts TIMESTAMP(0)); DATE 格式为:‘YYYY-MM-DD’,支持的范围是 ‘1000-01-01’到 ‘9999...格式为:’YYYY-MM-DD hh:mm:ss’,支持的范围是 ‘1000-01-01 00:00:00.000000’到 ‘9999-12-31 23:59:59.999999’。...格式为:’YYYY-MM-DD hh:mm:ss’。范围是’1970-01-01 00:00:01.000000’UTC到’2038-01-19 03:14:07.999999’UTC。...后续文章会进行讲解; MySQL将TIMESTAMP值从当前时区转换为UTC以进行存储,然后从UTC转换为当前时区以进行检索。(对于其他类型,例如DATETIME。不会发生这种情况。)...* 服务器要求月份和日期值有效,而不仅仅是分别在1到12和1到31范围内。禁用严格模式后,无效日期(例如) ‘2004-04-31’将转换为 ‘0000-00-00’并生成警告。
'1000-01-01 00:00:00' to '9999-12-31 23:59:59' 时间格式为 YYYY-MM-DD hh:mm:ss,默认精确到秒 TIMESTAMP '1970-01-01...00:00:01' UTC to '2038-01-19 03:14:07'UTC 默认精确到秒 2.DATETIME和TIMESTAMP 最大时间精确度 5.7 之后的版本(其实应该说5.6.5)...Type Range Remark DATETIME '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999' 'YYYY-MM-DD hh...(2)对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。...MySQL converts TIMESTAMP values from the current time zone to UTC for storage, and back from UTC to the
MySQL以几种格式识别DATE、DATETIME和TIMESTAMP值,在第9.1.3节,"日期和时间字面"中描述。...MySQL 以YYYY-MM-DD hh:mm:ss格式检索和显示DATETIME值。...“TIMESTAMP”数据类型用于包含日期和时间部分的值。 “TIMESTAMP”的范围为“1970-01-01 00:00:01”UTC 到“2038-01-19 03:14:07”UTC。...MySQL 将 TIMESTAMP 值从当前时区转换到 UTC 以进行存储,并从 UTC 返回到当前时区以进行检索。...MySQL 将 TIMESTAMP 值从当前时区转换到 UTC 以进行存储,并从 UTC 返回到当前时区以进行检索。
格式:YYYY-MM-DD 注释:支持的范围是从 '1000-01-01' 到 '9999-12-31' DATETIME() *日期和时间的组合。...格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' TIMESTAMP() *时间戳。...格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC TIME() 时间。...格式:HH:MM:SS 注释:支持的范围是从 '-838:59:59' 到 '838:59:59' YEAR() 2 位或 4 位格式的年。 注释:4 位格式所允许的值:1901 到 2155。...2 位格式所允许的值:70 到 69,表示从 1970 到 2069。 *即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。
,格式n】from 表名;】 详解: 一 MySQL数据类型介绍 MySQL支持多种数据类型,主要有数值类型、日期类型、时间类型和字符串类型。...可以使用各种格式指定YEAR值,如下所示: 以4位字符串或者4位数字格式表示的YEAR,范围为1901~2155。输入格式‘YYYY’或者YYYY。 以2位字符串格式表示的YEAR,范围为00到99。...日期格式为:'YYYY-MM-DD' 。 以'YYYY-MM-DD'或者'YYYYMMDD'字符串格式表示日期,取值范围是'1000-01-01'~'9999-12-03' 。...以'YYYY-MM-DD HH:MM:SS'或者'YYYYMMDDHHMMSS'字符串格式表示日期,取值范围是'1000-01-01 00:00:00'~'9999-12-03 23:59:59'。...但是TIMESTAMP列的取值范围小于DATETIME的取值范围,为'1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07' UTC。
:00:00 UTC....buf = appendInt(buf, int(m2), 9) } 了解完golang的时间格式表示,我们过来看下mysql的时间格式表示: MySQL DATETIME存储包含日期和时间的值。...从DATETIME列查询数据时,MySQL会以以下格式显示DATETIME值:YYYY-MM-DD HH:MM:SS。...另外,DATETIME值可以包括格式为YYYY-MM-DD HH:MM:SS [.fraction]例如:2017-12-20 10:01:00.999999的尾数有小数秒。...TIMESTAMP范围从1970-01-01 00:00:01 UTC到2038-01-19 03:14:07 UTC。
第一种是在fastjson序列化的时候不要使用默认行为,而是指定日期类型的格式, @Data @ToString public class TestEntity { private String...HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } } 这里我们给TimeData设置了日期类型,并且可以识别三种不同的日期格式。...比如很多时候我们是直接把mysql的数据读出然后写入到ES。mysql里的日期写入到ES后发现时间ES查询的时间跟实际看到的时间差了8个小时,究竟是怎么回事呢?...我们已经知道输出端(ES)的默认时区是UTC,只需要再在输入端(mysql)也明确时区即可。...} } } 加上这个时区信息,ES在搜索的时候时间起始就是2014-12-31T23:00:00 UTC。
'00:00:00' 3字节 TIMESTAMP'YYYY-MM-DD hh:mm:ss''1970-01-01 00:00:01.000000' UTC...to '2038-01-19 03:14:07.999999' UTC'0000-00-00 00:00:00'4字节 DATETIME 'YYYY-MM-DD hh:mm:ss...一个字节的数字范围是0到255,0表示0000,时间从1901到2155刚好255个值;DATE:三个字节的数字,这个数字由YYYY*16*32 + MM*32 + DD得到。...MONTH() 月份的数字,从1到12 MONTHNAME() 月份名字,January到December DAYOFMONTH() 日期的数字,从1到31...在不涉及到不同时区的场景下,直接返回YYYY-MM-DD hh:mm:ss格式即可。在需要使用不同时区的国际化场景中,建议序列化的字符串中带上时区信息,由前端根据用户所处的时区进行展示。
从上图中可以了解到time的存储格式,还有数据范围。其中HH小时大于一天的24小时,可以为八百多的数字。这是因为这个类型不仅仅可以用于存储一天的某个时间还可以记录一段时间的间隔。所以小时就24小时。...3、DATE date用于存储日期,没有时间部分,存储时需要三个字节。插入数据可以有多种格式。 常见插入格式解析: a、”YYYY-MM-DD“、"YYYYMMDD"。 ...timestamp存储需要四个字节,它的取值范围为“1970-01-01 00:00:01” UTC ~ “2038-01-19 03:14:07” UTC,而datetime取值范围为“1000-01...-01 00:00:00” ~ "9999-12-31 23:59:59"(UTC:Coordinated Universal Time 世界时间标准) 。...插入格式也有多种。 常见插入格式解析: 与DATETIME一致,可以参考上面。 四、小结 了解MySQL的日期时间数据类型对于选取一种适合存储类型是很有必要的。
1 CURDATE()函数 CURDATE()函数用于返回当前日期,只包含年、月、日部分,格式为YYYY-MM-DD。...3 NOW()函数 NOW()函数用于返回当前日期和时间,包含年、月、日、时、分、秒,格式为YYYY-MM-DD HH:MM:SS。...,格式为YYYY-MM-DD HH:MM:SS,与UNIX_TIMESTAMP(date)函数互为反函数。...()函数 UTC_DATE()函数用于返回UTC日期。...使用示例如下: ---- mysql> SELECT UTC_TIME(); +------------+ | UTC_TIME() | +------------+ | 06:39:00 | +-
– 日期类型 MySQL的日期类型也很多: - YEAR以YYYY格式显示值 - 范围 1901到2155,和 0000。...- **DATE**类型用于具有日期部分但没有时间部分的值: - DATE以格式YYYY-MM-DD显示值 ; - 支持的范围是 '1000-01-01' 到 '9999-12-31'...- **DATETIME** **(常用)** 类型用于包含日期和时间部分的值: - DATETIME以格式'YYYY-MM-DD hh:mm...:ss'显示值; - 支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59; - TIMESTAMP数据类型被用于同时包含日期和时间部分的值: -...TIMESTAMP以格式'YYYY-MM-DD hh:mm:ss'显示值; - 但是它的范围是UTC的时间范围:'1970-01-01 00:00:01'到'2038-01-19 03:14:07
[+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 以给定的格式显示当前时间,或是设置系统日期。...-d,--date=字符串 显示指定字符串所描述的时间,而非当前时间 -f,--file=日期文件 类似--date,从日期文件中按行读入时间描述 -r, --reference...日期和时间单元由单个的空格分开: 2006-08-07 12:34:56-06:00 -s, --set=字符串 设置指定字符串来分开时间 -u, --utc, --universal...1526209668437 1526209668439 在linux Shell中并没有毫秒级的时间单位,只有秒和纳秒其实这样就足够了,因为纳秒的单位范围是(000000000..999999999),所以从纳秒也是可以的到毫秒的...00:00:00 CST [root@Labhost1 ~]# date 2008年 08月 08日 星期五 00:00:01 CST 将系统时间设定成20点08分08秒的命令: [root@Labhost1
领取专属 10元无门槛券
手把手带您无忧上云