MYSQL中获取当前的年和月

selectYear(curDate()),月(curDate()),日(curDate());SelectWeekOfYear(curDate());略有区别,weekOfYear(Date)相当于后面的week(Date,mode),具体值的详细信息,根据自己的实际情况选择自己想要的值。
模式工作日范围周1第一周是...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天以上71-53号星期一是今年的星期一setdate_format(now(),'%Y')selectdate_format(now(),'%m')selectdate_format(now(),'%e')selectdate_formatat(now(),'%U')selectyear(curdate()),month(curdate()),dayofyear(curdate()),weekofyear(curdate());◆TIME(expr)提取时间或日期时间表达式的时间部分并将其作为字符串返回。
mysql>SELECTTIME('2003-12-3101:02:03');->'01:02:03'mysql>SELECTTIME('2003-12-3101:02:03.000123');->'01:02:03.000123'◆TIMEDIFF(expr,expr2)TIMEDIFF()开始时间expr和结束时间expr2之间返回时间。
expr和expr2是时间或日期和时间表达式,并且它们的类型必须相同。
mysql>SELECTTIMEDIFF('2000:01:0100:00:00',->'2000:01:0100:00:00.000001');->'-00:00:00.000001'mysql>SELECTTIMEDIFF('1997-12-3123:59:59.000001',->'1997-12-3001:01:01.000002');->'46:58:57.999999'◆TIMESTAMP(expr),TIMESTAMP(expr,expr2)单参数例如,此函数将日期或日期时间表达式expr作为日期时间值返回,两个参数将时间表达式expr2与日期或日期时间表达式expr连接起来,将结果作为日期时间值返回。
mysql>SELECTTIMESTAMP('2003-12-31');->'2003-12-3100:00:00'mysql>SELECTTIMESTAMP('2003-12-3112:00:00','12:00:00');->'2004-01-0100:00:00'◆TIMESTAMPADD(interval,int_expr,datetime_expr)将整数表达式int_expr附加到日期或日期时间表达式datetime_expr。
int_expr的单位由时间间隔参数给出,该参数必须是以下值之一:FRAC_SECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER或YEAR。
显示关键词的区间值可以使用SQL_TSI_前缀或使用SQL_TSI_前缀来指定。
例如,DAY或SQL_TSI_DAY都是正确的。
mysql>SELECTTIMESTAMPADD(MINUTE,1,'2003-01-02');->'2003-01-0200:01:00'mysql>SELECTTIMESTAMPADD(WEEK,1,'2003-01-02');->'2003-01-09'◆TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)日期或日期时间表达式返回datetime_expr1和datetime_expr2之间的整数差。
结果的单位由间隔参数给出。
间隔的合法值与TIMESTAMPADD()函数描述中列出的值相同。
mysql>SELECTTIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');->3mysql>SELECTTIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');->-1◆TIME_FORMAT(time,format)的使用方式与DATE_FORMAT()函数相同,但格式字符串中仅包含小时、分钟和秒。
可以有格式说明符。
其他说明符生成空值或0。
如果时间刻度包含超过23小时的组成部分,%H和%k小时格式说明符会生成大于正常范围0..23的值。
另一个小时格式说明符生成模12的小时值。
mysql>SELECTTIME_FORMAT('100:00:00','%H%k%h%I%l');->'10010004044'◆TIME_TO_SEC(time)返回转换为秒的时间参数。
mysql>SELECTTIME_TO_SEC('22:23:00');->80580mysql>SELECTTIME_TO_SEC('00:39:38');->2378◆TO_DAYS(date)给定一个日期,返回天数(从年份开始))0天)。
mysql>SELECTTO_DAYS(950501);->728779mysql>SELECTTO_DAYS('1997-10-07');->729669TO_DAYS()对于发生变化时缺少日期的阳历(1582)之前的值不会被考虑。
请记住,MySQL使用“日期和时间类型”中的规则将日期转换为两位数的年份值。
例如,'1997-10-07'和'97-10-07'被视为相同日期:mysql>SELECTTO_DAYS('1997-10-07'),TO_DAYS('97-10-07');->729669,729669对于1582年之前的日期(或者在其他区域可能是次年),此函数的结果不可靠。
◆UNIX_TIMESTAMP(),UNIX_TIMESTAMP(date),如果不带参数调用,则返回无符号整数形式的Unixtimestamp(自“1970-01-0100:00:00”GMT以来的秒数)。
如果使用日期调用UNIX_TIMESTAMP(),它将返回参数值,作为自“1970-01-0100:00:00”GMT以来的秒数。
日期可以是DATE字符串、DATETIME字符串、TIMESTAMP或格式为YYMMDD或YYYMMDD的本地时间数字。
mysql>SELECTUNIX_TIMESTAMP();->882226357mysql>SELECTUNIX_TIMESTAMP('1997-10-0422:23:00');->875996580当UNIX_TIMESTAMP用于TIMESTAMP列时,该函数返回字符串到Unix的值,而不带任何隐式-timestamp"直接从转换返回内部时间戳值。
如果将溢出日期传递给UNIX_TIMESTAMP(),它将返回0,但请注意,只会检查基本范围(从1970到2037的年份,从01到12的月份,从01到31的天)。
如果要减去UNIX_TIMESTAMP()列,您可能需要丢弃无符号整数结果。
◆UTC_DATE、UTC_DATE()以“YYYY-MM-DD”或YYYYMMDD格式返回当前UTC日期值。
具体格式取决于该函数是在字符串还是数字上下文中使用。
mysql>SELECTUTC_DATE(),UTC_DATE()+0;->'2003-08-14',20030814◆UTC_TIME,UTC_TIME()返回当前UTC值,其格式为'HH:MM:SS'或HHMMSS,具体格式取决于该函数是在字符串还是数字上下文中使用。
mysql>SELECTUTC_TIME(),UTC_TIME()+0;->'18:07:53',180753◆UTC_TIMESTAMP,UTC_TIMESTAMP()以'YYYY-MM-DDHH:MM'格式返回当前UTC日期和时间值:SS'或YYYYMMDDHHMMSS,具体取决于该函数是在字符串还是数字上下文中使用。
mysql>SELECTUTC_TIMESTAMP(),UTC_TIMESTAMP()+0;->'2003-08-1418:08:04',20030814180804◆WEEK(date[,mode])该函数返回与日期对应的周数。
WEEK()的两个参数形式为您提供了这个允许指定一周是从周日还是周一开始,以及返回值范围是0到53还是1到53。
如果省略mode参数,则使用default_week_format系统参数的值。
请参见第5.3.3节“服务器系统变量”。
下表显示了mode参数的工作过程:mysql>SELECTWEEK('1998-02-20');->7mysql>SELECTWEEK('1998-02-20',0);->7mysql>SELECTWEEK('1998-02-20',1);->8mysql>SELECTWEEK('1998-12-31',1);->53注意,如果日期是上一年的最后一周是。
如果不使用2、3、6或7作为模式参数选择,MySQL将返回0:mysql>SELECTYEAR('2000-01-01'),WEEK('2000-01-01',0);->2000,0有些人可能建议MySQL应该为WEEK()函数返回52,因为给定的日期实际上是1999年的第52周曾是。
我们决定返回0,因为我们希望函数返回“给定年份的周数”。
这使得WEEK()函数与其他从日期中提取日期部分的函数结合使用时更加可靠。
如果您希望年度计算结果包括给定日期所在周的第一天,则应使用0、2、5或7作为模式参数。
mysql>SELECTWEEK('2000-01-01',2);->52作为替代方案,您可以使用YEARWEEK()函数:mysql>SELECTYEARWEEK('2000-01-01');->199952mysql>SELECTMID(YEARWEEK('2000-01-01'),5,2);->'52'◆WEEKDAY(日期)returndate(0=星期一,1=星期二,...6=星期日)对应的工作日索引,Weekdayindexformysql>SELECTWEEKDAY('1998-02-0322:23:00');->1mysql>SELECTWEEKDAY('1997-11-05');->2◆WEEKOFYEAR(date)以1到53之间的数字形式返回日期的公历周。
这是一个兼容性函数,相当于WEEK(DATE,3)。
mysql>SELECTWEEKOFYEAR('1998-02-20');->8◆YEAR(date)返回1000到9999之间的日期对应的年份。
mysql>SELECTYEAR('98-02-03');->1998◆YEARWEEK(日期),YEARWEEK(date,start)返回日期对应的年份或星期。
START参数执行与WEEK()的START参数相同的功能。
结果中的年份可能与对应于该年第一周和最后一周的日期参数不同。
mysql>SELECTYEARWEEK('1987-01-01');->198653请注意,WEEK()函数组返回的周数和(0)w可选参数可能是不同的0或1,因为WEEK()返回周。
参考给定年份。

那个在mysql中我如果只要获取表中时间一列中的具体的年份和月份,应该怎么写啊比如说我就只要2004

WHEREYear(订单日期)=2004ANDMONTH(订单日期)=5就这样;注意:在MySQL中,有2组函数可用于获取日期组件。
执行示例代码如下:mysql>SELECT'NOW'DisplayMode,NOW()B->UNIONALL->SELECT。
'秒'显示模式,秒(HOUR())B->UNIONALL->SELECT'分钟显示模式',MINUTE(HOUR())B->UNIONALL->SELECT'小时'显示模式,时间(TIME())B->UNIONALL->SELECT'日'显示模式,DAY(TIME())B->UNIONALL->SELECT'周'显示模式显示,周(TIME())B->UNIONALL->SELECT'月'显示模式,月(TIME())B->UNIONALL->SELECT'年'显示模式,年(TIME())B+-------------+--------------------+|显示模式|B|+--------------+---------------------+|现在|2013-04-0709:29:54||秒|54||分钟|29||小时|9||日|7||周|14||月|4||年|2013|+-------------+---------------------+8rowsinset(0.00sec)mysql>SELECT'年份'ASname,EXTRACT(YEARFROMNOW())ASvalue->UNIONALL->SELECT'年月'ASname,EXTRACT(YEAR_MONTHFROMNOW())ASvalue->UNIONALL->SELECT'月份'ASname,EXTRACT(MONTHFROMNOW())ASvalue->UNIONALL->SELECT'day'ASname,EXTRACT(DAYFROMNOW())ASvalue->UNIONALL->SELECT'小时'ASname,EXTRACT(HOURFROMNOW())ASvalue->UNIONALL->SELECT'分钟'ASname,EXTRACT(MINUTEFROMNOW())ASvalue->UNIONALL->SELECT'秒'ASname,EXTRACT(SECONDFROMNOW())ASvalue;+------+--------+|名称|值|+-----+--------+|年份|2013||年月|201304||月|4||日|7||时|9||分|27||秒|43|+------+--------+7rowinset(0.00秒)