求教MYSQL的日期函数

求教MYSQL的日期函数,第1张

EXTRACT(type FROM date)从date中返回“type”的值。

MONTH(date) 返回date的月份,范围1到12。

MINUTE(date) 返回date的分钟,范围是0到59。

返回月份匹配的结果集

SELECT

FROM tableA

WHERE EXTRACT(MONTH FROM NOW( )) =

EXTRACT(MONTH FROM logtime)

SELECT

FROM tableA

WHERE MONTH(NOW( )) =

MONTH(logtime)

返回分钟匹配的结果集

SELECT

FROM tableA

WHERE EXTRACT(MINUTE FROM NOW( )) =

EXTRACT(MINUTE FROM logtime)

SELECT

FROM tableA

WHERE MINUTE(NOW( )) =

MINUTE(logtime)

你可以用年和月一起比较啊,去年,前年都不成问题,你原来问题没有说清楚前提和背景。

想查x个月以前的信息

if当前月<=x

SELECT

FROM tableA

WHERE MONTH(logtime) <=(12-x+MONTH(NOW( ))) AND YEAR(logtime)<YEAR(NOW())

else

SELECT

FROM tableA

WHERE MONTH(logtime) <=(MONTH(NOW( )-x) AND YEAR(logtime)<=YEAR(NOW())

在date的分钟上加上x分钟: DATE_ADD(date,INTERVAL x MINUTE);

MYSQL中也有DATEDIFF函数

DATEDIFF(expr,expr2)

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

很明显和MSSQL里的datefiff形同神异,并没有过多的参数,只能比较天的差别。

所以在MySQL要加上自己的处理才行。

11 获得当前日期+时间(date + time)函数:now()

除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

current_timestamp() current_timestamp

localtime() localtime

localtimestamp() localtimestamp

这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

12 获得当前日期+时间(date + time)函数:sysdate()

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。

2 获得当前日期(date)函数:curdate()

其中,下面的两个日期函数等同于 curdate(): current_date(),current_date

3 获得当前时间(time)函数:curtime()

其中,下面的两个时间函数等同于 curtime():current_time(),current_time

4 获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp()

DATEDIFF(expr,expr2)

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

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');

-> 1

mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');

-> -31

================

当前日期用curdate() 来获取,

======================

不知道你说的时间是指日期还是真正的时间,再给你时间相减的函数

=========

TIMEDIFF(expr,expr2)

TIMEDIFF() 返回起始时间 expr 和结束时间expr2 之间的时间。 expr 和expr2 为时间或 date-and-time 表达式,两个的类型必须一样。

mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',

->

'2000:01:01 00:00:00000001');

-> '-00:00:00000001'

mysql> SELECT TIMEDIFF('1997-12-31 23:59:59000001',

->

'1997-12-30 01:01:01000002');

-> '46:58:57999999'

DATE_ADD是时间计算函数。DATE_ADD(<TIME>, <INTERVAL> )

NOW()函数返回的是SQL命令执行的当前时间;

INTERVAL -1 DAY 的意思就是向前1天( 时间 - 1天) 等同于 INTEVAL -24 HOUR

如果你想向后一天,就可以写INTERVAL 1 DAY;或者 INTERVAL 24 HOUR 都是可以的

mysql怎么获取时间戳的函数UNIX_TIMESTAMP我们收集了网络上流行的各种关于获取UNIX_TIMESTAMP的方法总结。

CREATE TRIGGER cus_info_tbl_tr AFTER INSERT ON cus_info_tbl

FOR EACH ROW

INSERT INTO summary_tbl ( `school_id`, `province_id`, `city_id`, `year`, `month`, `day`, `hour`, `minute`, `first_time`, `intdate` ) VALUES

( NEWschool_id,

NEWprovince_id,

NEWcity_id,

YEAR( NEWdate_call ),

MONTH( NEWdate_call ),

DAYOFMONTH( NEWdate_call ),

HOUR( NEWdate_call ),

MINUTE( NEWdate_call ),

NEWfirst_time,

UNIX_TIMESTAMP( NEWdate_call )+28800

);

看到了吧,在这个时间戳后面再加上8个小时的秒数就搞定了,呵呵。

不过我在google的时候注意到有很多兄弟都反应UNIX_TIMESTAMP和php中的mktime得到的值是一样的,但是我这里却出现了问题,到现在也没有能够找到原因。

代码如下 复制代码

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

若无参数调用,则返回一个Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整数。若用date 来调用UNIX_TIMESTAMP(),它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回。date 可以是一个DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。

查询

mysql中UNIX_TIMESTAMP()函数的应用比较

应用:

代码如下 复制代码

SELECT(

UNIX_TIMESTAMP(endtime)-UNIX_TIMESTAMP(startime)

)/31536000year,id,name

FROMtestime

LIMIT0,30

这里我们可以使用

FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format) 来格式化一个UNIX_TIMESTAMP()时间戳,它将返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的 unix_timestamp参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。

若format 已经给出,则结果的格式是根据format 字符串而定。 format 可以包含同DATE_FORMAT() 函数输入项列表中相同的说明符。

代码如下 复制代码

mysql> Select FROM_UNIXTIME(875996580);

-> '1997-10-04 22:23:00'

mysql> Select FROM_UNIXTIME(875996580) + 0;

-> 19971004222300

mysql> Select FROM_UNIXTIME(UNIX_TIMESTAMP(),

-> '%Y %D %M %h:%i:%s %x');

-> '2003 6th August 06:22:58 2003'

php中:time()

time -- 返回当前的 Unix 时间戳

strtotime() 也可以转换Unix 时间戳

11 获得当前日期+时间(date + time)函数:now()

除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

current_timestamp() current_timestamp

localtime() localtime

localtimestamp() localtimestamp

这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

12 获得当前日期+时间(date + time)函数:sysdate()

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。

2 获得当前日期(date)函数:curdate()

其中,下面的两个日期函数等同于 curdate(): current_date(),current_date

3 获得当前时间(time)函数:curtime()

其中,下面的两个时间函数等同于 curtime():current_time(),current_time

4 获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp()

返回当前日期:SELECT CURRENT_DATE();

返回当前时间:SELECT CURRENT_TIME();

返回当前日期和时间:SELECT CURRENT_TIMESTAMP();

MySQL基础:网页链接

以上就是关于求教MYSQL的日期函数全部的内容,包括:求教MYSQL的日期函数、如何在mysql数据表中显示当前时间、求高人介绍MySQL的datediff函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10054439.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存