Oracle查询星期几

  • SQL语句查询给定时间是星期几;
  • 查询函数TO_CHAR (datetime)
SELECT SYSDATE FROM dual;

SELECT to_char(SYSDATE,'DAY') FROM dual;

SELECT to_char(SYSDATE,'DAY','NLS_DATE_LANGUAGE=''SIMPLIFIED CHINESE''') FROM dual;

SELECT to_char(SYSDATE,'DAY','NLS_DATE_LANGUAGE=AMERICAN') FROM dual;

SELECT to_char(SYSDATE,'DY','NLS_DATE_LANGUAGE=AMERICAN') FROM dual;

 

2013/8/27 14:27:05

星期二

星期二

TUESDAY  

TUE

 

  •  TO_CHAR语法
TO_CHAR({ datetime | interval } [, fmt [, 'nlsparam' ] ])

 

 

  • to_char_date::=

     
  • fmt:日期格式
Element

Description

D

Day of week (1-7). This element depends on the NLS territory of the session.

DAY

Name of day.

DY

Abbreviated name of day.

 

  • nlsparam:
'NLS_DATE_LANGUAGE = language'

 

  • 附:

Oracle Database Supported Languages

 Language Name

 Language Abbreviation

 Default Sort

ALBANIAN

sq

GENERIC_M

AMERICAN

us

binary

ARABIC

ar

ARABIC

ASSAMESE

as

binary

AZERBAIJANI

az

AZERBAIJANI

BANGLA

bn

binary

BELARUSIAN

be

RUSSIAN

BRAZILIAN PORTUGUESE

ptb

WEST_EUROPEAN

BULGARIAN

bg

BULGARIAN

CANADIAN FRENCH

frc

CANADIAN FRENCH

CATALAN

ca

CATALAN

CROATIAN

hr

CROATIAN

CYRILLIC KAZAKH

ckk

GENERIC_M

CYRILLIC SERBIAN

csr

GENERIC_M

CYRILLIC UZBEK

cuz

GENERIC_M

CZECH

cs

CZECH

DANISH

dk

DANISH

DUTCH

nl

DUTCH

EGYPTIAN

eg

ARABIC

ENGLISH

gb

binary

ESTONIAN

et

ESTONIAN

FINNISH

sf

FINNISH

FRENCH

f

FRENCH

GERMAN DIN

din

GERMAN

GERMAN

d

GERMAN

GREEK

el

GREEK

GUJARATI

gu

binary

HEBREW

iw

HEBREW

HINDI

hi

binary

HUNGARIAN

hu

HUNGARIAN

ICELANDIC

is

ICELANDIC

INDONESIAN

in

INDONESIAN

IRISH

ga

binary

ITALIAN

i

WEST_EUROPEAN

JAPANESE

ja

binary

KANNADA

kn

binary

KOREAN

ko

binary

LATIN AMERICAN SPANISH

esa

SPANISH

LATIN SERBIAN

lsr

binary

LATIN UZBEK

luz

GENERIC_M

LATVIAN

lv

LATVIAN

LITHUANIAN

lt

LITHUANIAN

MACEDONIAN

mk

binary

MALAY

ms

MALAY

MALAYALAM

ml

binary

MARATHI

mr

binary

MEXICAN SPANISH

esm

WEST_EUROPEAN

NORWEGIAN

n

NORWEGIAN

ORIYA

or

binary

POLISH

pl

POLISH

PORTUGUESE

pt

WEST_EUROPEAN

PUNJABI

pa

binary

ROMANIAN

ro

ROMANIAN

RUSSIAN

ru

RUSSIAN

SIMPLIFIED CHINESE

zhs

binary

SLOVAK

sk

SLOVAK

SLOVENIAN

sl

SLOVENIAN

SPANISH

e

SPANISH

SWEDISH

s

SWEDISH

TAMIL

ta

binary

TELUGU

te

binary

THAI

th

THAI_DICTIONARY

TRADITIONAL CHINESE

zht

binary

TURKISH

tr

TURKISH

UKRAINIAN

uk

UKRAINIAN

VIETNAMESE

vn

VIETNAMESE

### Oracle SQL 中获取日期对应星期的方法 在 Oracle 数据库中,可以使用 `TO_CHAR` 函数来获取某个日期对应的星期。该函数允许通过指定格式模型将日期转换为字符串形式。 对于获取某天是星期的情况,可以通过如下方式实现: ```sql SELECT TO_CHAR(SYSDATE, 'DAY') AS "Day of Week" FROM dual; ``` 上述语句会返回当前系统日期所对应的星期名称[^1]。需要注意的是,这种方式下得到的结果将是完整的星期英文名,并且默认情况下可能会包含前导空格。如果希望去除这些不必要的空白字符,则可以在外面包裹一层 `TRIM()` 函数: ```sql SELECT TRIM(TO_CHAR(SYSDATE, 'DAY')) AS "Trimmed Day of Week" FROM dual; ``` 另外一种方法则是利用数字表示法来表达一周中的每一天。这可以通过调整格式掩码参数完成,例如 `'D'` 或者更推荐使用的 `'DY'` 来获得缩写的星期名字(如 Mon,Tue 等),而不仅仅是简单的整数编号: ```sql SELECT TO_CHAR(SYSDATE, 'DY') AS "Abbreviated Day Name", TO_CHAR(SYSDATE, 'D') AS "Numeric Day Of Week (1=Sun)" FROM dual; ``` 这里,“Numeric Day Of Week” 的值是从周日开始计数的;即 Sunday 对应于 1 ,Saturday 则映射到 7 。 如果想要改变这一行为使得周一成为每周的第一天,那么就需要设置相应的 NLS 参数 : ```sql ALTER SESSION SET NLS_TERRITORY='AMERICA'; -- 设置地区影响NLS_CALENDAR等属性 ALTER SESSION SET NLS_CALENDAR='GREGORIAN'; ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN'; -- 此时再查看数值型的一周第天就会有所不同了 SELECT TO_CHAR(SYSDATE,'D') FROM DUAL; ``` 以上操作能够确保按照国际标准 ISO8601 定义的方式计算每天的位置关系,在大多数应用场景里更加合理实用[^5]。 最后值得注意的是,当处理具体业务逻辑时可能还会涉及到跨月甚至跨年的特殊情况,此时应当谨慎考虑边界条件以及性能优化方面的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值