基于mysql时间处理功能的应用程序详细解决方案

周(日)

返回日期日期的周索引(1 =星期日,2 =星期一,7 =星期六),这些索引值对应ODBC标准。
>选择MySQL DayOfWeek('1998-02-03);
> 3

工作日(日期)
返回每周的指数(0 =星期一,1 =星期二,6 =星期日)。
MySQL >选择工作日('1997-10-04 22:23:00);
> 5
MySQL >选择平日('1997-11-05);
> 2

dayofmonth(日期)
返回日期的日期在1到31之间。
MySQL >选择dayofmonth('1998-02-03);
> 3

dayofyear(日期)
在1至366的范围内,返回一年的天数。
MySQL >选择dayofyear('1998-02-03);
> 34

月份(日期)
返回日期月,范围从1到12。
MySQL >选择月份('1998-02-03);
> 2

dayname(日期)
返回日期的名称。
MySQL >选择dayname(1998-02-05 );
-> '星期四'

名(日期)
返回日期月份的名称。
MySQL >选择名(1998-02-05 );
-> 'february

四分之一(日期)
返回到本季度的日期,从1到4不等。
MySQL >选择季度('98-04-01);
> 2

星期(日期)
U3000
周(日期,第一)
在星期日的第一天,有一个参数返回日期的周数,从0到52.2个参数表(星期)允许。
你指定这个星期是从星期日还是星期一开始如果第二个参数是0,那么这个星期从星期日开始,如果第二个参数是1,
星期一开始。
MySQL >选择周('1998-02-20);
> 7
Mysql> select WEEK ('1998-02-20', 0);
> 7
MySQL >选择周('1998-02-20 ',1);
> 8

年份(日期)
返回日期年份,范围从1000到9999。
MySQL >选择年('98-02-03);
- > 1998

小时(时间)
当你回到时间时,范围是0到23。
MySQL >选择小时('10:05:03);
> 10

分钟(时间)
返回时间分钟,范围是0到59。
MySQL >选择分钟('98-02-03 10:05:03);
> 5

第二(时间)
返回时间的秒数是0到59。
MySQL >选择二('10:05:03);
> 3

period_add(p,n)
添加N个月期P(格式输入时间或yyyymm)。返回值的格式yyyymm。注意相位参数P不是一个日期值。
MySQL >选择period_add(9801,2);
> 199803

period_diff(P1,P2)
P1和P2之间的月数退还,P1和P2应在格式输入时间或yyyymm。注意周期参数P1和P2不是日期值。
MySQL >选择period_diff(9802199703);
> 11

date_add(日期、时间间隔表达式类型)
U3000
date_sub(日期、时间间隔表达式类型)
U3000
adddate(日期、时间间隔表达式类型)
U3000
subdate(日期、时间间隔表达式类型)
这些函数执行日期运算。MySQL 3.22,他们new.adddate()和()subdate是同义词date_add()和()date_sub。
在MySQL 3.23中,您可以使用+和-而不是date_add date_sub()和()。(见例子)日期指定的开始日期
日期时间或日期值,表达式是一个表达式,指定区间值添加到开始日期或从开始日期,和表达的是一个字符串;它可以作为一个字符串;
一开始是一个负区间。类型是一个关键的词,如何表达要explained.extract(类型日期)起作用
类型间隔的情况下返回。下表显示的类型和表达式参数有关:类型的价值期望的表达式格式
二秒秒
分钟分钟分钟
小时的时间
天天天
月月月

minute_second分秒分钟:秒
hour_minute小时和分钟小时:分钟
day_hour天数和小时的天时
year_month年和月years-months
hour_second小时,分钟,小时:分钟:秒
day_minute天,小时,分钟,日小时:分钟
day_second天,小时,分钟,秒,天小时:分钟:秒

MySQL允许任何标点符号分隔符在expr格式。表明建议分隔显示。如果日期参数是一个日期值和你的计算只
它包含年、月、日部分(即,没有时间的一部分),其结果是一个日期值。否则结果为日期时间值。

MySQL >选择1997-12-31 23:59:59+间隔1秒;
1998-01-01 -> 00:00:00
MySQL >选择间隔1天+1997-12-31 ;
-> 1998-01-01
MySQL >选择1998-01-01间隔1秒;
1997-12-31 -> 23:59:59
MySQL >选择date_add(1997-12-31 23:59:59
间隔1秒);
1998-01-01 -> 00:00:00
MySQL >选择date_add(1997-12-31 23:59:59
间隔1天);
1998-01-01 -> 23:59:59
MySQL >选择date_add(1997-12-31 23:59:59
间隔1:1minute_second);
00:01:00 1998-01-01 ->
MySQL >选择date_sub( 1998-01-01 00:00:00
间隔1 1:1:1 day_second);
1997-12-30 -> 22:58:59
MySQL >选择date_add( 1998-01-01 00:00:00
INTERVAL -1 10 DAY_HOUR);
1997-12-30 -> 14:00:00
MySQL >选择date_sub(1998-01-02
-> 1997-12-02
MySQL >选择提取(从1999-07-02年);
> 1999
MySQL >选择提取(year_month从1999-07-02 01:02:03 );
> 199907
MySQL >选择提取(day_minute从1999-07-02 01:02:03 );
> 20102

如果你指定一个区间值,太短(不包括类型关键词期望区间),MySQL假设你有间隔值的左边部分省略。例如,
如果你指定一个类型,day_second expr,价值预计有天,小时,分钟和秒。如果你指定一个值如1:10
MySQL假定天数和小时丢失和价值代表分钟和秒。换句话说,1:10day_second相当于1:10minute_second
它被解释为一种方式,这意味着MySQL解释了时间值传递的时间,而不是一天的时间,
结果是空的。如果你加上个月,year_month或年结果日期大于在新的一个月的最大天数,天都调整到新的月球最大的一天。

MySQL >选择date_add('1998-01-30,间隔1个月);
-> 1998-02-28

注意,前面的间隔和类型关键字中的示例不区分大小写。
to_days(日期)
给出一个日期,它返回若干天(从0年的天数)。
MySQL >选择to_days(950501);
> 728779
MySQL >选择to_days('1997-10-07);
> 729669

(to_days)不适用格雷戈瑞日历(1582)前值。

from_days(N)
给定n天数,并返回日期值。
MySQL >选择from_days(729669);
-> '1997-10-07

to_days()

不用于在值之前使用格雷戈瑞日历(1582)。

date_format(日期格式)
根据格式字符串格式化日期值。下列修饰符可用于格式字符串:%1月份的名称(一月…十二月)
星期六(星期日)…
%d带有英文前缀的月份(第一、第二、第三等)
y,年份,数字,4位
y,年份,数字,2位
%缩写(Sun…)SAT的名称)
在%d个月的天数,数字(00…31)
月份的天数,号码(0…31)
百个月,号码(01…12)
c个月,号码(1…12)
%1缩写(DEC)12月的名称
j一年中的天数(001…366)
小时(00…23)
k小时(0…23)
小时(01…12)
% i小时(01…12)
l小时(1…12)
%我分钟,号码(00…59)
时间,12小时(HH:毫米:SS)
时间,24小时
%s秒(00…59)
%s秒(00…59)
上午或下午
一周的天数(0 =星期日……6 =星期六)
百周(0…52),这个星期日是一周的第一天。
百周(0…52),这个星期一是一周的第一天。
文字% %。

所有其他字符不做解释,并复制到结果。

MySQL >选择date_format('1997-10-04 22:23:00 '、' % W m个Y);
十月星期六- 1997
MySQL >选择date_format('1997-10-04 22:23:00 '、' %:%我:%s);
-> '22:23:00
MySQL >选择date_format('1997-10-04 22:23:00,
%1!%一%。%d;
97坐0410 Oct 277 - > '4th
MySQL >选择date_format('1997-10-04 22:23:00,
%1;
2210 10:23:00 PM -> '22 22:23:00 00 6
在mysql3.23,它以%在格式字符。在MySQL的早期版本中,%是可选的。

time_format(时间格式)
这是为date_format相同()函数,但格式字符串只能包含处理时间,格式修饰符分钟和秒。
其他修饰符产生空值或0。

CURDATE()
U3000
current_date
返回今天日期的价值in'yyyy-mm-dd'or yyyymmdd格式,这取决于功能是用一个字符串或数字语境。
MySQL >选择CURDATE();
-> '1997-12-15
MySQL >选择CURDATE()+ 0;
> 19971215

curtime()
U3000
current_time
返回当前时间值in'hh:MM:ss'or hhmmss格式,取决于函数用于字符串或数字的背景。
MySQL >选择curtime();
-> '23:50:26
MySQL >选择curtime()+ 0;
> 235026

(现在)
U3000
系统日期()
U3000
current_timestamp
返回当前的日期和时间in'yyyy-mm-dd HH:毫米:ss'or yyyymmddhhmmss格式取决于函数在字符串或数字。
上下文被使用。
选择现在();
1997-12-15 -> 23:50:26
选择现在()+ 0;
> 19971215235026

unix_timestamp(日期)
如果没有参数的调用返回一个Unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒数)。如果unix_timestamp()使用一个
日期参数被调用,它返回秒从'1970-01-01 00:00:00' gmt.date开始数可以是日期字符串、日期时间
一个字符串,一个时间戳,或在当地时间在收到录取通知时间或yyyymmdd格式。
MySQL >选择unix_timestamp();
> 882226357
MySQL >选择unix_timestamp('1997-10-04 22:23:00);
> 875996580

当unix_timestamp用于时间戳列,函数将直接没有Unix时间戳转换字符串接受隐含的价值。

from_unixtime(unix_timestamp)
通过对unix_timestamp参数in'yyyy-mm-dd HH回报所代表的价值:MM:ss'or yyyymmddhhmmss格式取决于函数在字符串
它在上下文中或在数字上下文中使用。
MySQL >选择from_unixtime(875996580);
1997-10-04 -> 22:23:00
MySQL >选择from_unixtime(875996580)+ 0;
> 19971004222300

from_unixtime(unix_timestamp,格式)
返回一个字符串代表UNIX时间标签,根据格式字符串格式化,格式可以包含一条上市的date_format()函数
相同的修饰语。
MySQL >选择from_unixtime(unix_timestamp()),
%s:%d %:%1:%1;
12月23日03:43:30 x -> '1997

sec_to_time(秒)
回到秒参数转化为小时、分钟和秒,和值格式化with'hh:MM:ss'or HHMMSS,取决于函数在字符串或数字。
它在上下文中使用。
MySQL >选择sec_to_time(2378);
-> '00:39:38
MySQL >选择sec_to_time(2378)+ 0;
> 3938

time_to_sec(时间)
返回时间参数并将其转换为秒。
MySQL >选择time_to_sec('22:23:00);
> 80580
MySQL >选择time_to_sec('00:39:38);
> 2378