
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函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)