首页 / MYSQL / 使用MySql获取特定日期
使用MySql获取特定日期
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用MySql获取特定日期,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2468字,纯文字阅读大概需要4分钟。
内容图文
![使用MySql获取特定日期](/upload/InfoBanner/zyjiaocheng/905/b15692fa5111439a99c454f5d0c7ff61.jpg)
我需要在输入B值的一个月内获得Bth工作日.
例如,如果在2013年1月份b = 12,则结果值应采用日期格式为’17 -01-2013′,因为计算结果
在排除星期六,星期日和星期日之后这个月的假期.
我已经在SQLserver中尝试了以下代码&它工作正常,但我发现很难在MySql中执行它,因为有些功能不是
在Sqlserver中可用.
Declare
@fromDate Date,
@Daydiff int
Set @fromDate ='01 jan 2013'
Set @Daydiff=datediff(day, @fromdate, dateadd(month, 1, @fromdate))
Select * from
(
Select
dateadd(day,DayNo,@fromDate) as Date,
dateName(weekday,(dateadd(day,DayNo,@fromDate))) As WeekDate,
Datename(month,(dateadd(day,DayNo,@fromDate))) as MonthName,
Row_number() Over (partition by (DatePart(month,(dateadd(day,DayNo,@fromDate))))
order by (dateadd(day,DayNo,@fromDate))) as Business_day
from
(Select top (@Daydiff) row_number() over(order by (select 1))-1 as DayNo
from sys.syscolumns a cross join sys.syscolumns b)Dates
Where
dateName(weekday,(dateadd(day,DayNo,@fromDate))) Not In ('Saturday','Sunday') and
dateadd(day,DayNo,@fromDate) Not In (Select hdate from Holidays)
)A
Where Business_day=1
注意
假期是静态假期表,其中包含2013年的假期列表
我在Mysql中需要一个类似的实例.
请帮助我.
解决方法:
如果你需要第一天设置OFFSET 0到底.如果第二个OFFSET为1,如果第15个OFFSET为14
select d
FROM
(
SELECT @row := @row + 1 as row,
DATE_ADD('2013-01-01', INTERVAL @row-1 DAY) d
from
(SELECT @row := 0) r,
(
select 1 n
union all
select 2 n
union all
select 3 n
union all
select 4 n
union all
select 5 n
union all
select 6 n
) t1,
(
select 1 n
union all
select 2 n
union all
select 3 n
union all
select 4 n
union all
select 5 n
union all
select 6 n
) t2
) num_seq
where
d<DATE_ADD('2013-01-01', INTERVAL 1 MONTH)
and d not in (select hdate from Holidays )
and DAYNAME(d) not in ('Saturday','Sunday')
order by d
LIMIT 1 OFFSET 20
没有OFFSET和LIMIT的版本.查看最新的r = 1,这是第1天.如果您需要第15天更改为r = 15
select d
from
(
select d,@r := @r + 1 as r
FROM
(SELECT @r := 0) r1,
(
SELECT @row := @row + 1 as row,
DATE_ADD('2013-01-01', INTERVAL @row-1 DAY) d
from
(SELECT @row := 0) r,
(
select 1 n
union all
select 2 n
union all
select 3 n
union all
select 4 n
union all
select 5 n
union all
select 6 n
) t1,
(
select 1 n
union all
select 2 n
union all
select 3 n
union all
select 4 n
union all
select 5 n
union all
select 6 n
) t2
) num_seq
where
d<DATE_ADD('2013-01-01', INTERVAL 1 MONTH)
and d not in (select hdate from Holidays )
and DAYNAME(d) not in ('Saturday','Sunday')
order by d
) rTable
where r=1
内容总结
以上是互联网集市为您收集整理的使用MySql获取特定日期全部内容,希望文章能够帮你解决使用MySql获取特定日期所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。