加入收藏 | 设为首页 | 会员中心 | 我要投稿 南京站长网 (https://www.025zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

【 SQL——日期函数】

发布时间:2022-12-20 14:34:07 所属栏目:MsSql教程 来源:未知
导读: SQL——日期函数
DAYOFWEEK(date)
返回日期date的星期索引(1=星期天Mssq日期函数,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。
select DAYOFWEEK('1998-02-03');
-> 3

SQL——日期函数

DAYOFWEEK(date)

返回日期date的星期索引(1=星期天Mssq日期函数,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

select DAYOFWEEK('1998-02-03');
-> 3

WEEKDAY(date)

返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

mysql> select WEEKDAY('1997-10-04 22:23:00');
-> 5

DAYOFMONTH(date)

返回date的月份中日期,在1到31范围内。

mysql> select DAYOFMONTH('1998-02-03');
-> 3

DAYOFYEAR(date)

返回date在一年中的日数, 在1到366范围内。

mysql> select DAYOFYEAR('1998-02-03');
-> 34

MONTH(date)

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

mysql> select MONTH('1998-02-03');
-> 2

DAYNAME(date)

返回date的星期名字。

mysql> select DAYNAME("1998-02-05");
-> 'Thursday'

MONTHNAME(date)

返回date的月份名字。

mysql> select MONTHNAME("1998-02-05");
-> 'February'

QUARTER(date)

返回date一年中的季度,范围1到4。

mysql> select QUARTER('98-04-01');
-> 2

WEEK(date)

对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。

mysql> select WEEK('1998-02-20');
-> 7

WEEK(date,first)

2个参数形式WEEK()允许你指定星期是否开始于星期天或星期一。

如果第二个参数是0,星期从星期天开始,

如果第二个参数是1,从星期一开始。

mysql> select WEEK('1998-02-20',0);
-> 7
mysql> select WEEK('1998-02-20',1);
-> 8

YEAR(date)

返回date的年份,范围在1000到9999。

mysql> select YEAR('98-02-03');
-> 1998

HOUR(time)

返回time的小时,范围是0到23。

mysql> select HOUR('10:05:03');
-> 10

MINUTE(time)

返回time的分钟,范围是0到59。

mysql> select MINUTE('98-02-03 10:05:03');
-> 5

SECOND(time)

回来time的秒数,范围是0到59。

mysql> select SECOND('10:05:03');
-> 3

PERIOD_ADD(P,N)

增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。

mysql> select PERIOD_ADD(9801,2);
-> 199803

PERIOD_DIFF(P1,P2)

返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。

mysql> select PERIOD_DIFF(9802,199703);
-> 11

DATE_ADD(date,INTERVAL expr unit)

使用DATE_ADD(date,INTERVAL expr unit)函数,可以对Date进行加减,其中date代表要修改的时间字段,expr 代表要增加多少时间,负数代表减少时间,unit代表时间单位。

例:查看用户在某天刷题后第二天还会再来刷题的平均概率。

mysql> select round(count(d2.device_id)/count(d1.device_id),4) as avg_ret 
       from (select distinct device_id, date from question_practice_detail) as d1
       left join (select distinct device_id, date from question_practice_detail) as d2 
       on d1.device_id = d2.device_id 
       and d2.date = date_add(d1.date, interval 1 day);
-> avg_ret
-> 0.3000

(编辑:南京站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章