作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种最简单的方法来确定 oracle 中 DATE
值的工作日编号,与 NLS
设置无关。
Monday -> 1
Tuesday -> 2
…
Sunday -> 7
有什么想法吗?
最佳答案
ISO 周从星期一开始;他们不使用 NLS 设置。我认为这个表达是可靠的。
1 + trunc(your_date) - trunc(your_date, 'IW')
显示算术是如何工作的。 . . current_date 是星期三。
select current_date as cur_date
, trunc(current_date) as trunc_cur
, trunc(current_date, 'IW') as trunc_iso
, trunc(current_date) - trunc(current_date, 'IW') as date_diff
, 1 + trunc(current_date) - trunc(current_date, 'IW') as dow
from dual
CUR_DATE TRUNC_CUR TRUNC_ISO DATE_DIFF DOW
June 19 2013 16:01:51+0000 June 19 2013 00:00:00+0000 June 17 2013 00:00:00+0000 2 3
一般来说,如果您找不到一个可以合理地满足您期望的表达式,您可以随时使用表格。 (也许还有一个将 SQL 与底层实现隔离的函数。)
所以你总是可以使用类似的东西
create table weekday_numbers (
weekday char(3) not null primary key,
weekday_num integer not null unique
check(weekday_num between 1 and 7)
);
insert into weekday_numbers values ('Mon', 1);
...
关于sql - 无论 NLS 设置如何,工作日数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195031/
使用PHP实现计算两个日期间隔的年、月、周、日数: 复制代码 代码如下: <?php function format($a,$b){
基本上我使用的是 MySQL gem for Ruby , 我对日期比较没有合理的支持。 Mysql::Time 类只给我访问器方法,如年、月、秒等。如果我可以将其转换为 Ruby DateTime
我是一名优秀的程序员,十分优秀!