日期和时间函数
2023-12-08 10:44:54
MySQL >选择什么tbl_name 在(to_days)(现在)- to_days(date_col)< = 30; 周(日) 返回日期索引(1 =星期日,2 =星期一),…7 =星期六)索引值与ODBC标准一致。 >选择MySQL DayOfWeek('1998-02-03); > 3 工作日(日期) 返回日期索引(0 =星期一,1 =星期二,6 =星期日): MySQL >选择工作日('1998-02-03 22:23:00); > 1 Mysql> SELECT WEEKDAY ('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 ); 二月> 四分之一(日期) 在一年的四分之一的时候返回,从1到4: MySQL >选择季度('98-04-01); > 2 星期(日期) 周(日期,第一) 星期日是一周的第一天,如果调用函数的一个参数,它返回的日期为今年的前几周,和返回值是0到53(是的,有可能是第五十三周开始),一周两参数形式()允许您指定是否一个周开始在星期日或星期一,和返回值是0-53或1-52。这里的表格给出了二参数工作的价值意义 0个星期的星期日开始,和返回值是0-53 1个星期的星期一开始,和返回值是0-53 2个星期的星期日开始,和返回值是1-53 3周的星期一开始有1-53返回值(ISO 8601)。 MySQL >选择周('1998-02-20); > 7 MySQL >选择周('1998-02-20 ',0); > 7 MySQL >选择周('1998-02-20 ',1); > 8 MySQL >选择周('1998-12-31 ',1); > 53 请注意,在4版本中,周(#,0)更改以匹配美国日历。注意,如果一个星期是在去年的最后一周,当你不使用2或3作为一个可选的参数,MySQL将返回0: MySQL >选择年('2000-01-01),周('2000-01-01 ',0); > 2000, 0 MySQL >选择周('2000-01-01 ',2); > 52 你可能认为,MySQL应该返回52周()函数在给定日期值实际上是1999的第五十二周的一部分,我们决定返回0,因为我们希望函数返回指定年份中接下来的几周,这使本周()函数时,使用可靠这是用在与其他提取日期值月值的功能组合。如果你想获得相应的年度周的价值,你应该使用参数2或3作为一个可选的参数,或使用功能yearweek(): MySQL >选择yearweek('2000-01-01); > 199952 MySQL >选择中(yearweek('2000-01-01 '),5); > 52 年份(日期) 返回日期年份,从1000到9999不等: MySQL >选择年('98-02-03); > 1998 yearweek(日期) yearweek(日期,第一) 返回日期值的哪一周,第二个参数的形式和功能与第二个星期(第二个参数)完全相同。注意,给定日期参数是一年的第一个或最后一周,返回值可能与日期参数所给出的年份不一致: MySQL >选择yearweek('1987-01-01); > 198653 请注意,对于可选参数0或1,周值的返回值不同于周()函数的返回值(0),而星期()根据给定的年上下文返回每周值。 小时(时间) 返回每小时的时间值,从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) 返回period.p1和P2在P1和P2之间的月数应该由输入时间或yyyymm指定。注意周期参数P1和P2不是日期值: MySQL >选择period_diff(9802199703); > 11 date_add(日期、时间间隔表达式类型) date_sub(日期、时间间隔表达式类型) adddate(日期、时间间隔表达式类型) subdate(日期、时间间隔表达式类型) 这些功能的执行date.adddate算术运算()和()subdate是同义词date_add()和(),分别date_sub。在MySQL 3.23中,如果表达式的右侧是一个日期值或日期时间型字段,你可以使用C++而不是date_add()和date_sub()的参数的日期是日期或日期值指定一个日期开始。expr是一个表达式,指定或减去区间值从开始日期。一个表达式是一个字符串;它可以用一个单一的领导代表负区间值。类型是一个关键的词,标志的表达解释的格式。下表显示的类型和表达式参数有关:格式的类型值expr预期 二秒 分钟分钟 小时小时 一天的日子 月 年 minute_second分钟:秒 hour_minute小时:分钟 day_hour天小时 year_month years-months hour_second小时:分钟:秒 day_minute日小时:分钟 day_second日小时:分钟:秒 在expr格式,MySQL允许任何字符作为分隔符。该分隔字符如下表所示。如果日期参数是一个日期值和计算的时间间隔只有一年,月和日的部分(没有时间的部分),然后返回值也是一个日期值,否则返回值是一个DateTime值: MySQL >选择1997-12-31 23:59:59+间隔1秒; 1998-01-01 -> 00:00:00 MySQL >选择间隔1天+ 1997-12-31 ; -> 1998-01-01 Mysql> SELECT 1998-01-01 - INTERVAL 1 SECOND; 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:1区间-> minute_second); 00:01:00 1998-01-01 -> MySQL >选择date_sub(1998-01-01 00:00:00 区间1:1:1day_second -> 1); 1997-12-30 -> 22:58:59 MySQL >选择date_add(1998-01-01 00:00:00 ->区间1 10day_hour); 1997-12-30 -> 14:00:00 MySQL >选择date_sub(1998-01-02 -> 1997-12-02 如果你指定了一个很短的间隔值(不包括所有的间隔部分预期的类型关键字),MySQL假设你错过了区间值最左边的部分。例如,如果一个类型指定为day_second expr的值,然后将包括天、小时、分钟、秒。如果您指定的值一样,换句话说,1:10,1:10的day_second解释为相当于1:10的minute_second.this相似的时候,MySQL的说明时间价值通过时间,不是一天。注意,如果作为区间包含日期的增加或减少时间的一部分,日期值会自动转换为日期和时间值: MySQL >选择date_add(1999-01-01 -> 1999-01-02 MySQL >选择date_add(1999-01-01 1999-01-01 -> 01:00:00 如果你使用一个不正确的日期,返回为空。如果你增加一个月,year_month或年和日期比新的月份天数最多的,它将被调整到新的月份天数最多。 MySQL >选择date_add('1998-01-30,间隔1个月); -> 1998-02-28 注意,在上面的例子中,单词间隔和关键字类型不是区分字母大小写的。 提取(日期类型) 提取()函数使用间隔是一致的date_add类型()或()date_sub,但它是用来指定代替日期的算术运算的日期中提取的部分。 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 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 from_days()不打算用之前的格雷戈瑞日历的价值(1582),因为它不考虑天数时丢失的日历的改变。 date_format(日期格式) 根据格式字符串格式化日期值。可以在格式字符串中使用以下修饰符:修饰符的含义 月(一月十二月)的名称 每周的名字(星期日星期六) %d有一个英文后缀为几天的一个月(零,第一,第二,第三等)。 y年份,数字,4位 y年份,数字,2位 一周中的一周,星期日是一周的第一天,数字,4,有V 一周中的一周,星期一是一周的第一天,数字,4,有V %1缩写的名称(Sun……) 在%d个月的天数,数字(00…31) 月份的天数,数字(0…31) 百个月,数字(00…12) C个月,数字(0…12) %1缩写的月份名称(1月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 =星期六) %周(00…53),星期日是一周的第一天。 %周(00…53),星期一是一周的第一天。 第五周(01…53),星期日是一周的第一天。 第五周(01…53),星期一是一周的第一天。 一个字母% % 所有其他字符直接复制到结果而不作解释。 MySQL >选择date_format('1997-10-04 22:23:00 '、' % W m个Y); > 1997年10月星期六 MySQL >选择date_format('1997-10-04 22:23:00 '、' %:%我:%s); 22:23:00 MySQL >选择date_format('1997-10-04 22:23:00, %1!%一%,%d; 第四SAT 041097277 MySQL >选择date_format('1997-10-04 22:23:00, %1; 10:23:00 PM 22:23:00 222210 - > 006 MySQL >选择date_format('1999-01-01 '、' %×% V); 199852 在MySQL 3.23中的格式要求,在` %字符修饰。在早期版本的MySQL,` %是可选的。之所以开始的月和日的改性剂从零是在MySQL 3.23中,它允许存储不完整的日期值(如2004-00-00)。 time_format(时间格式) 其用法类似于date_format()函数,但格式字符串只包含格式修饰符时,分,秒,其他改性剂的使用将产生一个空值或0。 CURDATE() current_date yyyy-mm-dd'or yyyymmdd格式返回当前日期值,并返回的格式取决于功能是用一个字符串或数字语境: MySQL >选择CURDATE(); 1997-12-15 MySQL >选择CURDATE()+ 0; > 19971215 curtime() current_time 返回hh当前时间值:MM:学生或hhmmss格式,和返回的格式取决于函数用于字符串或数字语境: MySQL >选择curtime(); 23:50:26 MySQL >选择curtime()+ 0; > 235026 (现在) 系统日期() current_timestamp 当前的日期和时间值是在为HH的返回形式:MM:ss'or yyyymmddhhmmss。返回的格式取决于函数是否在字符串或数字上下文中使用。 选择现在(); - >1997-12-15 23:50:26 选择现在()+ 0; > 19971215235026 注意,函数()只在每个查询中计算一次,也就是说,当查询开始执行时,也就是说,如果现在()在单个查询中多次引用,它只会为所有的值提供相同的时间。 unix_timestamp() unix_timestamp(日期) 如果在调用没有参数,返回一个无符号整数形式的Unix时间戳(秒数从1970-01-01 00:00:00的GMT)。如果unix_timestamp()调用时的参数,它返回的参数值从1970-01-01 00:00:00 GMT. Date可以是一个日期字符串秒数,一个DateTime字符串,一个时间戳,或本地时间显示一收到录取通知时间或YYYYMMDD: MySQL >选择unix_timestamp(); > 882226357 MySQL >选择unix_timestamp('1997-10-04 22:23:00); > 875996580 当unix_timestamp应用时间戳列,函数返回直接代替一个隐式字符串Unix时间戳转换内部的时间戳值。如果你把一个日期参数超出范围unix_timestamp(),它将返回0,但注意,MySQL只对其进行了基本的测试(年度范围1970-2037,月01-12,日期01-31)。如果你想减掉的unix_timestamp()列,你需要给力的结果为一个有符号整数。看第6.3.5投功能。 from_unixtime(unix_timestamp {,格式}) 它返回在为HH型unix_timestamp参数值:MM:ss'or yyyymmddhhmmss,和返回值的形式取决于函数中使用字符串或数字语境。如果格式是给定的,返回值是根据格式字符串格式化,格式可以包含相同的改性剂为date_format()功能。 MySQL >选择from_unixtime(875996580); - >1997-10-04 22:23:00 MySQL >选择from_unixtime(875996580)+ 0; > 19971004222300 MySQL >选择from_unixtime(unix_timestamp()), %1:%d %:%1:%1!''; 12月23日03:43:30 1997 - > 1997 sec_to_time(秒) 返回参数转换成秒时每分钟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); > 2378tag:时间函数 日期 电脑软件
相关内容