mysql 日期时间函数

        学习了字符串函数,接着学习日期时间函数,

3,日期和时间函数

        日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用DATE类型的参数外,也可以使用DATETIME或者TIMESTAMP类型的参数,但会忽略这些值的时间部分。相同的,以TIME类型值为参数的函数,可以接受TIMESTAMP类型的参数,但会忽略日期部分,许多日期函数可以同时接受数和字符串类型的两种参数。

                                日期和时间函数表

函数

说明

CURDATE()、 CURRENT_DATE()

获取当前日期

CURTIME()、 CURRENT_TIME()

获取当前时间

CURRENT_TIMESTAMP()、LOCALTIME()、

NOW()、

SYSDATE()

获取当前日期和时间 

UNIX_TIMESTAMP(date)

获取时间戳

FROM_UNIXTIME(date)

把UNIX时间戳转换为普通格式的时间 

UTC_DATE()

函数返回当前UTC日期值

UTC_TIME()

返回当前UTC时间值

MONTH(date)

返回date对应的月份,范围值从1~12

MONTHNAME(date)

返回日期date对应月份的英文全名

DAYNAME(d)

返回d对应的工作日的英文名称,例如Sunday、Monday等

DAYOFWEEK(d)

返回d对应的一周中的索引(位置)。1表示周日,2表示周一,..7表示周六)

WEEKDAY(d)

返回d对应的工作日索引。0表示周一,1表示周二,....,6表示周日

WEEK(d)

计算日期d是一年中的第几周

WEEKOFYEAR(d)

计算某天位于一年中的第几周,范围是从1~53,相当于WEEK(d,3)

DAYOFYEAR(d)

返回d是一年中的第几天,范围是从1~366

DAYOFMONTH(d)

返回d是一个月中的第几天,范围是从1~31

YEAR(date)

返回date对应的年份,范围是1970~2069

QUARTER(date)

返回date对应的一年中的季度值,范围是从1~4

MINUTE(time)

返回time对应的分钟数,范围是从0~59

SECOND(time)

返回time 对应的秒数。范围是从0~59

EXTRACT(type FROM date)

从日期中提取一部分值

TIME_TO_SEC(time)

返回已转化为秒的time参数。转换公式为:小时*3600+分钟*60+秒

SEC_TO_TIME(seconds)

小返回被转化为小时、分钟和秒数的seconds参数值

DATE_ADD(date, INTERVAL expr type)、ADDDATE(date, INTERVAL expr type)

执行日期的加运算

DATE_SUB(date, INTERVAL expr type)、SUBDATE(date, INTERVAL expr type)

执行日期的减运算

ADDTIME(date,expr)

将expr值添加到 date,并返回修改后的值,date是一个日期或者日期时间表达式,而expr是一个时间表达式

SUBTIME(date,expr)

将date减去 expr值,并返回修改后的值,date是一个日期或者日期时间表达式,而expr是一个时间表达式

DATEDIFF(date1,date2)

返回起始时间datel和结束时间date2之间的天数

TIME_FORMAT(time,format)

根据format字符串安排time值的格式

GET_FORMAT(val_type, format_type)

回日期时间字符串的显示格式

1,获取当前日期的函数和获取当前时间的函数

        CURDATE()和 CURRENT_DATE()函数作用相同,将当前日期按照‘YYYY-MM-DD’或YYYYMMDD格式的值返回,具体格式根据函数在字符串或是数字语境中而定。

        【例53】使用日期函数获取系统当前日期,输入语句如下:

SELECT CURDATE(), CURRENT_DATE(), CURDATE() + 0;

        可以看到,两个函数作用相同,都返回了相同的系统当前日期,“CURDATE()+0”将当前日期值转换为数值型。

        CURTIME()和 CURRENT_TIME()函数作用相同,将当前时间以‘HH:MM:SS'或HHMMSS的格式返回,具体格式根据函数在字符串或是数字语境中而定。

        【例54】使用时间函数获取系统当前时间,输入语句如下:

SELECT CURTIME(), CURRENT_TIME(), CURTIME()+0;

        可以看到,两个函数作用相同,都返回了相同的系统当前时间,“CURTIME()+0”将当前时间值转换为数值型。

2,获取当前日期和时间的函数

        CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和 SYSDATE()4个函数的作用相同,均返回当前日期和时间值,格式为‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS,具体格式根据函数在字符串或数字语境中而定。

        【例55】使用日期时间函数获取当前系统日期和时间,输入语句如下:

SELECT CURRENT_TIMESTAMP(), LOCALTIME(), NOW(), SYSDATE();

        可以看到,4个函数返回的结果是相同的。

3,UNIX时间戳函数

        UNIX_TIMESTAMP(date)若无参数调用,则返回一个Unix时间戳(‘1970-01-01 00:00:00’GMT之后的秒数〕作为无符号整数。其中,GMT (Greenwich mean time)为格林尼治标准时间)。若用date来调用UNIX_TIMESTAMP(),它会将参数值以‘1970-01-01 00-00:0O’GMT后的秒数的形式返回。date可以是一个DATE字符串、DATETIME字符串、TIMESTAMP或一个当地时间的YYMMDD 或YYYYMMDD格式的数字。

        【例56】使用UNIX_TIMESTAMP函数返回UNIX格式的时间戳,输入语句如下:

SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(NOW()), NOW();

        FROM_UNIXTIME(date)函数把UNIX时间戳转换为普通格式的时间,与UNIX_TIMESTAMP (date)函数互为反函数。

        【例57】使用FROM_UNIXTIME函数将UNIX时间截转换为普通格式时间,输入语句如下:

SELECT FROM_UNIXTIME('1466393937');

        可以看到,FROM_UNIXTIME("1466393937')与【例56】中 UNIX_TIMESTAMP(NOWO)的结果正好相反,即两个函数互为反函数。

4,返回UTC日期的函数和返回UTC时间的函数

        UTC_DATE()函数返回当前UTC(世界标准时间〉日期值,其格式为‘YYYY-MM-DD’或YYYYMMDD,具体格式取决于函数是否用在字符串或数字语境中。

        【例58】使用UTC_DATEO函数返回当前UTC日期值,输入语句如下:

SELECT  UTC_DATE(), UTC_DATE()+0;

        UTC_DATE()函数返回值为当前时区的日期值。

        

        UTC_TIME()返回当前UTC时间值,其格式为‘HH:MM:SS’或HHMMSS,具体格式取决于函数是否用在字符串或数字语境中。

        【例59】使用UTC_TIME()函数返回当前UTC时间值,输入语句如下:

SELECT UTC_TIME(), UTC_TIME() + 0;

        UTC_TIME()返回当前时区的时间值。

5,获取月份的函数MONTH(date)和 MONTHNAME(date)

        MONTH(date)函数返回date对应的月份,范围值从1~12。

        【例60】使用MONTHO函数返回指定日期中的月份,输入语句如下:

SELECT MONTH('2024-02-13');

        MONTHNAME(date)函数返回日期date对应月份的英文全名。

        【例61】使用MONTHNAMEO)函数返回指定日期中的月份的名称,输入语句如下:

SELECT MONTHNAME('2024-02-13');

6,获取星期的函数DAYNAME(d)DAYOFWEEK(d)和WEEKDAY(d)

        DAYNAME(d)函数返回d对应的工作日的英文名称,例如Sunday、Monday等。

        【例62】使用DAYNAME(函数返回指定日期的工作日名称,输入语句如下:

 SELECT DAYNAME('2024-02-10'); 

        可以看到,2024年2月10日是星期六,因此返回结果为Saturday。

        DAYOFWEEK(d)函数返回d对应的一周中的索引(位置)。1表示周日,2表示周一,..7表示周六)。

        【例63】使用DAYOFWEEKO函数返回日期对应的周索引,输入语句如下:

SELECT DAYOFWEEK('2024-02-14');

        由【例63】可知,2024年2月14日为周三,因此返回其对应的索引值,结果为4。

        WEEKDAY(d)返回d对应的工作日索引。0表示周一,1表示周二,....,6表示周日。

        【例64】使用WEEKDAYO函数返回日期对应的工作日索引,输入语句如下:

SELECT WEEKDAY('2024-02-14 22:23:00'), WEEKDAY('2024-04-01');

        可以看到,WEEKDAY()和 DAYOFWEEK()函数都是返回指定日期在某一周内的位置,只是索引编号不同。

7,获取星期数的函数WEEK(d)和WEEKOFYEAR(d)

        WEEK(d)计算日期d是一年中的第几周。WEEK()的双参数形式允许指定该星期是否起始于周日或周一,以及返回值的范围是否为从0~53或从1~53。若 Mode参数被省略,则使用default_week_format系统自变量的值,可参考表1。

                        表1 WEEK函数中Mode参数取值

Mode

一周的第一天

范围

Week1为第一周

0

周日

0~53

本年度中有一个周日

1

周一

0~53

本年度中有3天以上

2

周日

1~53

本年度中有一个周日

3

周一

1~53

本年度中有3天以上

4

周日

0~53

本年度中有3天以上

5

周一

0~53

本年度中有一个周一

6

周日

1~53

本年度中有3天以上

7

周一

1~53

本年度中有一个周一

        【例65】使用WEEK()函数查询指定日期是一年中的第几周,输入语句如下:

SELECT WEEK('2011-02-20'), 
WEEK('2011-02-20',0), 
WEEK ('2011-02-20',1);

        可以看到,WEEK('2011-02-20')使用一个参数,其第二个参数为default_week_format 默认值,MySQL中该值默认为0,指定一周的第一天为周日,因此和WEEK(2011-02-20',0)返回结果相同;WEEK(2011-02-20',1)中第二个参数为1,指定一周的第一天为周一,返回值为7。可以看到,第二个参数的不同,返回的结果也不同,使用不同的参数的原因是不同地区和国家的习惯不同,每周的第一天并不相同。

        WEEKOFYEAR(d)计算某天位于一年中的第几周,范围是从1~53。相当于WEEK(d,3)。

        【例66】使用WEEKOFYEAR()查询指定日期是一年中的第几周,输入语句如下:

SELECT WEEK('2011-02-20',3), WEEKOFYEAR('2011-02-20');

        可以看到,两个函数返回结果相同。

7,获取天数的函数DAYOFYEAR(d)和 DAYOFMONTH(d)

        DAYOFYEAR(d)函数返回d是一年中的第几天,范围是从1~366。

        【例67】使用DAYOFYEAR()函数返回指定日期在一年中的位置,输入语句如下:

SELECT DAYOFYEAR('2016-02-20');

        1月份31天,再加上2月份的20天,因此返回结果为51。

        DAYOFMONTH(d)函数返回d是一个月中的第几天,范围是从1~31。

        【例68】使用DAYOFMONTH()函数返回指定日期在一个月中的位置,输入语句如

SELECT DAYOFMONTH('2016-02-20');

        结果显而易见。

8,获取年份、季度、小时、分钟和秒钟的函数

        YEAR(date)返回date对应的年份,范围是1970~2069。

        【例69】使用YEAR(函数返回指定日期对应的年份,输入语句如下:

SELECT YEAR('11-02-03'), YEAR('96-02-03');

        提示: “00~69’转换为“2000-2069', ‘70-99’转换为‘1970~1999’。

        QUARTER(date)返回date对应的一年中的季度值,范围是从1~4。

        【例70】使用QUARTERO函数返回指定日期对应的季度,输入语句如下:

SELECT QUARTER('16-04-01');

        MINUTE(time)返回time对应的分钟数,范围是从0~59。

        【例71】使用MINUTE()函数返回指定时间的分钟值,输入语句如下:

 SELECT MINUTE('16-02-03 10:10:03');

        

        SECOND(time)返回time 对应的秒数。范围是从0~59。

        【例72】使用SECOND()函数返回指定时间的秒值,输入语句如下:

SELECT SECOND('10:05:03');

9,获取日期的指定值的函数EXTRACT(type FROM date)

        EXTRACT(type FROM date)函数所使用的时间间隔类型说明符同DATE_ADD()或DATE_SUB()的相同,但它从日期中提取一部分,而不是执行日期运算。

        【例73】使用EXTRACT函数提取日期或者时间值,输入语句如下:

SELECT EXTRACT(YEAR FROM '2016-07-02') AS eol1,
EXTRACT(YEAR_MONTH FROM '2016-07-12 01:02:03') AS co12,
EXTRACT(DAY_MINUTE FROM '2016-07-12 01:02:03') AS eo13;

        type值为YEAR时,只返回年值,结果为2011;type值为YEAR_MONTH时返回年与月份,结果为201107;type值为DAY_MINUTE时,返回日、小时和分钟值,结果为120102。

        TIME_TO_SEC(time)返回已转化为秒的time参数。转换公式为:小时*3600+分钟*60+秒。

        【例74】使用TIME_TO_SEC函数将时间值转换为秒值,输入语句如下:

SELECT TIME_TO_SEC('23:23:00');

        SEC_TO_TIME(seconds)返回被转化为小时、分钟和秒数的seconds参数值,其格式为‘HHMM:SS’或HHMMSS,具体格式根据该函数是否用在字符串或数字语境中而定。

        【例75】使用SEC_TO_TIME()函数将秒值转换为时间格式,输入语句如下:

SELECT SEC_TO_TIME(2345), SEC_TO_TIME (2345)+0,
TIME_TO_SEC('23:23:00'), SEC_TO_TIME(84180);

        可以看到,SEC_TO_TIME函数返回值加上0值之后变成了小数值,TIME_TO_SEC正好和SEC_TO_TIME互为反函数。

10,计算日期和时间的函数

        计算日期和时间的函数有:DATE_ADD()、ADDDATE()、DATE_SUB()、SUBDATE()、ADDTIME()、SUBTIME()和 DATE_DIFF()。

        DATE_ADD(date, INTERVAL expr type)DATE_SUB(date,INTERVAL expr type),其中,date是一个DATETIME或DATE值,用来指定起始时间。expr是一个表达式,用来指定从起始日期添加或减去的时间间隔值。expr是一个字符串;对于负值的时间间隔,它可以以一个负号‘-’开头。type为关键词,它指示了表达式被解释的方式。表2显示了type和 expr参数的关系。

                                表2 MySQL中计算日期和时间的格式

type的值

预期的exprt的值

MICROSECOND

MICROSECONDS

SECOND

SECONDS

MINUTE

MINUTES

HOUR

HOURS

DAY

DAYS

WEEK

WEEKS

MONTH

MONTHS

QUARTER

QUARTERS

YEAR

YEARS

SECOND_MICROSECOND

'SECONDS.MICROSECONDS'

MINUTE_MICROSECOND

'MINUTES.MICROSECONDS'

MINUTE_SECOND

'MINUTES:SECONDS'

HOUR_MICROSECOND

'HOURS.MICROSECONDS'

HOUR_SECOND

'HOURS:MINUTES:SECONDS'

HOUR_MINUTE

HOURS:MINUTES

DAY_MICROSECOND

'DAYS.MICROSECONDS'

DAY_SECOND

'DAYS HOURS:MINUTES:SECONDS'

DAY_MINUTE

'DAYS HOURS:MINUTES'

DAY_HOUR

'DAYS HOURS'

YEAR_MONTH

'YEARS-MONTHS'

        若date参数是一个DATE值,计算只会包括YEAR、MONTH和DAY部分(即没有时间部分),其结果是一个DATE值。否则,结果将是一个DATETIME值。

        DATE_ADD(date, INTERVAL expr type)ADDDATE(date, INTERVAL expr type)两个函数作用相同,执行日期的加运算。

        【例76】使用DATE_ADD()和 ADDDATE()函数执行日期加操作,输入语句如下:

SELECT DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 SECOND) AS col1,ADDDATE('2010-12-31 23:59:59', INTERVAL 1 SECOND) AS col2,DATE_ADD('2010-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) AS co13;

        由结果可以看到,DATE_ADD(2010-12-3123:59:59',INTERVAL 1 SECOND)和ADDDATE(2010-12-3123:59:59', INTERVAL 1 SECOND)两个函数执行的结果是相同的,将时间增加1秒后返回,结果都为‘2011-01-01 00:00:00’; DATE_ADD(2010-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND)日期运算类型是MINUTE_SECOND,将指定时间增加1分1秒后返回,结果为‘2011-01-01 00:01:00’。

        DATE_SUB(date, INTERVAL expr type)或者SUBDATE(date, INTERVAL expr type)两个函数作用相同,执行日期的减运算。

        【例77】使用DATE_SUB和SUBDATE 函数执行日期减操作,输入语句如下:

SELECT DATE_SUB('2011-01-02', INTERVAL 31 DAY) AS col1,
SUBDATE('2011-01-02', INTERVAL 31 DAY) AS col2,
DATE_SUB('2011-01-01 00:01:00', INTERVAL '0 0:1:1' DAY_SECOND) AS col3;

        由结果可以看到,DATE_SUB(2011-01-02',INTERVAL 31DAY)和SUBDATE(2011-01-02', INTERVAL 31 DAY)两个函数执行的结果是相同的,将日期值减少31天后返回,结果都为“2010-12-02”;DATE_SUB('2011-01-01 00:01:00',INTERVAL '0 0:1:1' DAY_SECOND)函数将指定日期减少1天,时间减少1分1秒后返回,结果为“2010-12-31 23:59:59”。

        DATE_ADD和 DATE_SUB在指定修改的时间段时,也可以指定负值,负值代表相减,即返回以前的日期和时间。

        ADDTIME(date,expr)函数将expr值添加到 date,并返回修改后的值,date是一个日期或者日期时间表达式,而expr是一个时间表达式。

        【例78】使用ADDTIME进行时间加操作,输入语句如下:

SELECT ADDTIME('2000-12-31 23:59:59', '1:1:1'), 
ADDTIME('02:02:02', '02:00:00'); 

        可以看到,将“2000-12-31 23:59:59”的时间部分值增加1小时1分钟1秒后的日期变为“2001-01-01 01:01:00”;“02:02:02”增加两小时后的时间为“04:02:02”。

        SUBTIME(date,expr)函数中 date减去 expr值,并返回修改后的值,date是一个日期或者日期时间表达式,而expr是一个时间表达式。

        【例79】使用SUBTIME(函数执行时间减操作,输入语句如下:

SELECT SUBTIME('2000-12-31 23:59:59', '1:1:1'),
SUBTIME('02:02:02', '02:00:00');

        可以看到,将“2000-12-31 23:59:59”的时间部分值减少1小时1分钟1秒后的日期变为“2000-12-31 22:58:58”;“02:02:02”减少两小时的时间为“00:02:02”。

        DATEDIFF(date1,date2)返回起始时间datel和结束时间date2之间的天数。date1和 date2为日期或date-and-time表达式。计算中只用到这些值的日期部分。

        【例80】使用DATEDIFF()函数计算两个日期之间的间隔天数,输入语句如下:

SELECT DATEDIFF('2010-12-31 23:59:59', '2010-12-30') AS col1,DATEDIFF('2010-11-30 23:59:59', '2010-12-31')AS col23;

        DATEDIFF(函数返回datel-date2后的值,因此 DATEDIFF('2010-12-31 23:59:59', '2010-12-30')返回值为 1:DATEDIFF('2010-11-30 23:59:59', '2010-12-31')返回值为-31。

11,将日期和时间格式化的函数

        DATE_FORMAT(date,format)根据format指定的格式显示date值。主要format格式如表3所示。

                        表3 DATE_FORMAT时间日期格式

说明符

说明

%a

工作日的缩写名称(Sun..Sat)

%b

月份的缩写名称(Jan..Dec)

%c

月份,数字形式(0..12)

%D

带有英语后缀的该月日期(0th, lst, 2nd, 3rd, ..)

%d

该月日期,数字形式(00..31)

%e

该月日期,数字形式(0..31)

%f

微秒(00000..999999)

%H

以2位数表示24小时(00..23)

%h, %I

以2位数表示12小时(01..12)

%i

'分钟,数字形(00..59)

%j

一年中的天数(001.366)

%k

以24(20..23)小时表示时间

%l

以12(1..12)小时表示时间

%M

月份名称(Janury..Dccember)

%n

月份,数字形式(00..12)

%p

上午(AM)或下午(PM)

%r

时间,12小时制(小时hh:分钟mm:秒数ss后加AM或PM)

%S, %s

以2位数形式表示秒(00..59)

%T

时间,24小时制. (小时hh:分钟mm:秒数ss)

%U

周(0.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位数形式表示年份

%%

'%'文字字符

        【例81】使用DATE_FORMAT()函数格式化输出日期和时间值,输入语句如下:

SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') AS co11,
DATE_FORMAT('1997-10-04 22:23:00', '%D %y %a %d %m %b %j') AS co12,
DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s') AS co13,
DATE_FORMAT('1999-01-01', '%X %V') AS col4;

        可以看到“1997-10-04 22:23:00”分别按照不同参数转换成了不同格式的日期值和时间值。

        TIME_FORMAT(time,format)根据 format字符串安排time值的格式。format字符串可能仅会处理包含小时、分钟和秒的格式说明符,其他说明符产生一个 NULL值或0。若time值包含一个大于23的小时部分,则%H和%k小时格式说明符会产生一个大于0..23的通常范围的值。

        【例82】使用TIME_FORMATO)函数格式化输入时间值,输入语句如下:

SELECT TIME_FORMAT('16:00:00','%H %k %h %I %1');

        TIME_FORMAT 只处理时间值,可以看到,“16:00:00”按照不同的参数转换为不同格式的时间值。

        GET_FORMAT(val_type, format_type)返回日期时间字符串的显示格式, val_type表示日期数据类型,包括DATE、DATETIME和TIME; format_type表示格式化显示类型,包括EUR、INTERVAL、ISO、JIS、USA。GET_FORMAT根据两个值类型组合返回的字符串显示格式如表4所示。

                        表4 GET_FORMAT返回的格式字符串

值类型

格式化类型

显示格式化字符串

DATE

EUR

%d.%m.%Y

DATE

INTERVAL

%Y%m%d

DATE

ISO

%Y-%m-%d

DATE

JIS

%Y-%m-%d

DATE

USA

%m.%d.%Y

TIME

EUR

%H.%i.%s

TIME

INTERVAL

%H%i%s

TIME

ISO

%H:%i:%s

TIME

JIS

%H:%i:%s

TIME

USA

%h:%i:%s %p

DATETIME

EUR

%Y-%m-%d %H.%i.%s

DATETIME

INTERVAL

%Y%m%d%H%i%s

DATETIME

ISO

%Y-%m-%d %H:%i:%s

DATETIME

JIS

%Y-%m-%d %H:%i:%s

DATETIME

USA

%Y-%m-%d %H.%i.%s

        【例83】使用GET_FORMAT()函数显示不同格式化类型下的格式字符串,输入语句如下:

SELECT GET_FORMAT(DATE, 'EUR'), GET_FORMAT(DATE, 'USA');

        

        可以看到,不同类型的格式化字符串并不相同。

        【例84】在DATE_FORMATO函数中,使用GET_FORMAT函数返回的显示格式字符串来显示指定的日期值,输入语句如下:

SELECT DATE_FORMAT('2000-10-05 22:23:00', GET_FORMAT(DATE,'USA'));

        GET_FORMAT(DATE,'USA')返回的显示格式字符串为%m.%d.%Y,对照表3 DATE_FORMAT函数的显示格式,%m 以数字形式显示月份,%d 以数字形式显示日,%Y以4位数字形式显示年,因此结果为10.05.2000。

12,将日期和时间字符串转为日期和时间

STR_TO_DATE('日期时间字符串', '格式') 把日期时间字符串转为时间

SELECT STR_TO_DATE('2024-02-28 12:15:16', '%Y-%m-%d %H:%i:%s') AS datetime1,STR_TO_DATE('2024-02-28', '%Y-%m-%d') AS date1,STR_TO_DATE('12:15:16', '%H:%i:%s') AS time1; 

总结:

        日期时间函数中,获取当前时间的NOW()是首当其冲;其次把时间格式化,变成字符串DATE_FORMAT()函数和把字符串时间变成时间的函数STR_TO_DATE()这两个是高频使用。

        上一篇: 《mysql 字符串函数》        

        下一篇: 《mysql判断加密函数》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Discuz采集发布插件

Discuz(简称DZ)是一款知名的开源论坛系统,广泛应用于各类网站社区。对于许多站长来说,保持论坛内容的更新是一项挑战,特别是在内容量庞大的情况下。为了解决这个问题,有一类特殊的插件是用于在Discuz论坛中…

康耐视visionpro-CogDistancePointLineTool工具详细说明

CogDistancePointLineTool功能说明: 测量点到线的距离 备注:在“Geometry-Measurement”选项中的所有工具都是测量尺寸或角度工具,包括测量线与线 的角度、点与线的距离、圆与圆的距离等测量工具,工具使用的方法相似。 ①.打开工具栏&#…

Elment ui 动态表格与表单校验 列表数据 组件

组件做个记录&#xff0c;方便以后会用到。 效果&#xff1a; 代码 &#xff1a; <template><el-dialog title"商品详情" :visible.sync"dialogVisible" width"80%"><el-tabs v-model"activeTab"><el-tab-pane…

正弦实时数据库(SinRTDB)的使用(8)-过滤查询

前文已经将正弦实时数据库的使用进行了介绍&#xff0c;需要了解的可以先看下面的博客&#xff1a; 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…

通过node 后端实现颜色窃贼 (取出某个图片的主体rgb颜色 )

1.需求 我前端轮播图的背景色 想通过每一张轮播图片的颜色作为背景色 这样的话 需要通过一张图片 取出图片的颜色 这个工作通过前端去处理 也可以通过后端去处理 前端我试了试 color-thief 的插件 但是 这个插件是基于canvas 的模式来的 我需要在小程序中使用这个插件 而且是…

E4440A安捷伦E4440A频谱分析仪

181/2461/8938产品概述&#xff1a; Agilent PSA 系列 E4440A 高性能频谱分析仪提供强大的一键式测量、多功能功能集和领先的技术&#xff0c;可满足您的项目和需求。 Agilent E4440A 频谱分析仪的其他功能和规格包括&#xff1a; 频率范围&#xff1a;3 Hz - 26.5 GHz/-0.19…

汇总:五个开源的Three.js项目

Three.js 是一个基于 WebGL 的 JavaScript 库&#xff0c;它提供了一套易于使用的 API 用来在浏览器中创建和显示 3D 图形。通过抽象和简化 WebGL 的复杂性&#xff0c;Three.js 使开发者无需深入了解 WebGL 的详细技术就能够轻松构建和渲染3D场景、模型、动画、粒子系统等。 T…

Java数据结构-双向不带头非循环链表(模拟实现LinkedList)

目录 1. 双向不带头非循环链表的介绍2. 相关功能的实现2.1 基本框架2.2 size2.3 addFirst2.4 addLast2.5 addIndex2.6 contains2.7 remove2.8 removeAllKey2.9 clear 3. 全部代码 前面我们学习了最简单的链表&#xff1a;单链表&#xff0c;今天我们学习双向不带头非循环链表&a…

分布式图床项目

一、图床架构分析 二、后台数据处理框架 秒传: 如果上传的文件已经在服务器中存在了,就不需要二次上传了,但是服务器会对这个文件的引用计数加一,这样服务器就知道这个文件是多个人持有的。先对上传的文件进行 md5 校验来判断服务器中已经存在相同的文件了(同样的文件拿到…

OpenHarmony无人机MAVSDK开源库适配方案分享

MAVSDK 是 PX4 开源团队贡献的基于 MavLink 通信协议的用于无人机应用开发的 SDK&#xff0c;支持多种语言如 C/C、python、Java 等。通常用于无人机间、地面站与通信设备的消息传输。 MAVLink 是一种非常轻量级的消息传递协议&#xff0c;用于与无人机&#xff08;以及机载无…

[flink 实时流基础]源算子和转换算子

文章目录 1. 源算子 Source1. 从集合读2. 从文件读取3. 从 socket 读取4. 从 kafka 读取5. 从数据生成器读取数据 2. 转换算子基本转换算子&#xff08;map/ filter/ flatMap&#xff09; 1. 源算子 Source Flink可以从各种来源获取数据&#xff0c;然后构建DataStream进行转换…

Day55:WEB攻防-XSS跨站CSP策略HttpOnly属性Filter过滤器标签闭合事件触发

目录 XSS跨站-安全防御-CSP XSS跨站-安全防御-HttpOnly XSS跨站-安全防御-XSSFilter(过滤器的意思) 1、无任何过滤 2、实体化 输入框没有 3、全部实体化 利用标签事件 单引号闭合 4、全部实体化 利用标签事件 双引号闭合 5、事件关键字过滤 利用其他标签调用 双引号闭合…

代码随想录训练营第60天 | LeetCode 84.柱状图中最大的矩形、总结

LeetCode 84.柱状图中最大的矩形 文章讲解&#xff1a;代码随想录(programmercarl.com) 视频讲解&#xff1a;单调栈&#xff0c;又一次经典来袭&#xff01; LeetCode&#xff1a;84.柱状图中最大的矩形_哔哩哔哩_bilibili 思路 代码如下&#xff1a; ​​​​​​总结 感…

代码随想录|Day28|贪心03|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果

1005.K次取反后最大化的数组和 思路&#xff1a; 优先取反 绝对值最大的负数如果没有负数&#xff0c;不断取反 绝对值最小的数&#xff0c;直到次数 K 耗尽 取反最小数有一个优化技巧&#xff1a; 如果 K 为偶数&#xff0c;则取反 K 次后&#xff0c;正负不变。如果 K 为奇数…

ROM-IP

1.原理 通过添加数据文件&#xff0c;使ROM看起来不是易失性存储器&#xff0c; 产生256个数据&#xff0c;每个数据的位宽是8 如果前面为x&#xff0c;后面就是x256-1 2.单端口ROM配置 FPGA内部没有非易失性存储器。调用的ROM和RAM都是用RAM来生成的 3.双端口ROM配置 使用第一…

马斯克旗下xAI发布Grok-1.5,相比较开源的Grok-1,各项性能大幅提升,接近GPT-4!

本文原文来自DataLearnerAI官方网站&#xff1a;马斯克旗下xAI发布Grok-1.5&#xff0c;相比较开源的Grok-1&#xff0c;各项性能大幅提升&#xff0c;接近GPT-4&#xff01; | 数据学习者官方网站(Datalearner) 继Grok-1开源之后&#xff0c;xAI宣布了Grok-1.5的内测消息&…

手撕算法-跳跃游戏

描述 分析 如果某一个作为 起跳点 的格子可以跳跃的距离是 3&#xff0c;那么表示后面 3 个格子都可以作为 起跳点可以对每一个能作为 起跳点 的格子都尝试跳一次&#xff0c;把 能跳到最远的距离 不断更新如果可以一直跳到最后&#xff0c;就成功了 代码 class Solution {…

07-JavaScript DOM事件

1. 事件 1.1 事件概述 JavaScript 使我们有能力创建动态页面&#xff0c;而事件是可以被 JavaScript 侦测到的行为。 简单理解&#xff1a; 触发--- 响应机制。 网页中的每个元素都可以产生某些可以触发 JavaScript 的事件&#xff0c;例如&#xff0c;我们可以在用户点击某…

【漏洞潜在风险】弹框干扰类风险

弹框干扰风险定义: 游戏过程中&#xff0c;客户端经常会以文字类形式对玩家进行说明和指引&#xff0c;而对于一些更为重要的信息&#xff0c;便会用游戏中的弹框进行强调。由玩家主动触发对其他玩家造成重复弹框进而干扰到正常游戏的都可以称之为弹框干扰类风险。弹框干扰风险…

C++项目——集群聊天服务器项目(六)MySQL模块

Hello&#xff0c;大家好啊&#xff0c;最近比较忙&#xff0c;没来得及更新项目&#xff0c;实在抱歉~今天就恢复更新拉~ 在验证完网络模块与业务模块代码可以正常使用后&#xff0c;需完成的操作是与底层数据库进行交互&#xff0c;为实现各类用户查询、增删业务奠定良好的基…