SQL 10 函数 3 日期时间函数 - 6 计算一个日期是星期几

本文详细介绍了MySQL和Oracle数据库中日期操作的功能,包括计算日期是星期几、获取日期的年份、月份、周数等实用技巧,并通过SQL语句提供具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算一个日期是星期几在日常生活中山非常有用的,比如如果安排的报到日期是周末那么就像后拖延报道日期,在主流的数据库中对这个功能都提供了很好的支持。

1. MySQL

MySQL 中提供的DATENAME()函数用于计算一个日期是星期几,比如下面的SQL语句用于计算出生日期和注册日期各式星期几:

SELECT FBirthday, DAYNAME(FBirthday), FRegDay, DAYNAME(FRegDay) FROM T_Person

 

2. Oracle

Oracle提供的TO_CHAR()函数用于将数据库转化为字符串类型,当针对时间日期类型数据进行转化你的时候,它接受两个参数,其参数格式如下:

TO_CHAR(date, format)

其中date为带转换的日期,参数format为格式化字符串,数据库系统将按照这个字符串对date进行转换。格式化字符串中可以采用如下的占位符:

可以简单地将占位符作为参数传给TO_CHAR()函数,下面的SQL语句用于计算出生日期的年份、月份及周数:

占位符

说明

YEAR

年份,比如 NINETEEN NINETY-EIGHT

YYYY

4位年份,比如 1998

YYY

年份后 3位,比如 998

YY

年份后 2位,比如 98

Y

年份后 1位,比如 8

IYYY

符合 ISO标准的 4位年份,比如 1998

IYY

符合 ISO标准的年份后 3位,比如 998

IY

符合 ISO标准的年份后 2位,比如 98

I

符合 ISO标准的年份后 1位,比如 8

Q

以整数表季度度,比如 1

MM

以整数表示月份,比如 01

MON

月份的名称,比如 Feb

MONTH

月份的名称,补足 9个字符

RM

罗马表示法的月份,比如 VIII

WW

日期属于当年的第几周,比如 30

W

日期属于当月的第几周,比如 2

IW

日期属于当年的第几周(按 ISO标准),比如 30

D

日期属于周几,以整数表示,返回值返回值为 1 7

DAY

日期属于周几,以名字的形式表示 ,比如 FRI

DD

日期属于当月的第几天,比如 2

DDD

日期属于当年的第几天,比如 168

DY

日期属于周几,以名字形式表示,比如 FRI

HH

小时部分( 12小时制)

HH12

小时部分( 12小时制)

HH24

小时部分( 24小时制)

MI

分钟部分

SS

秒部分

SSSSS

自从午夜开始的秒数

 

SELECT FBirthday, TO_CHAR(FBirthday, 'YYYY') as yyyy,

TO_CHAR(FBirthday, 'MM') as mm,

TO_CHAR(FBirthday, 'MON') as mon,

TO_CHAR(FBirthday, 'WW') as ww

FROM T_Person

同样还可以将占位符组合起来实现更加复杂的转换逻辑,比如下面的SQL语句用于以“2008-08-08”这样的形式显示出生日期,以及以“31-2007-02”形式显示注册的日期:

SELECT FBirthday,

TO_CHAR(FBirthday, 'YYYY-MM-DD') as yyymmdd,

TO_CHAR(FRegDay, 'DD-YYYY-MM') as ddyyyymm

FROM T_Person

 

我们前面提到了,当用“DAY”作为参数的时候就可以哦将日期格式化为名字的形式表示星期几,比如下面的SQL语句用于出生日期及注册日期各属于星期几:

SELECT

FBirthday, TO_CHAR(FBirthday, 'DAY') as birthwk,

FRegDay, TO_CHAR(FRegDay, 'DAY') as regwk,

FROM T_Person

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值