sql 找到当前周,月,年的第一天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 找到当前周,月,年的第一天相关的知识,希望对你有一定的参考价值。


---------------Vertica------------------------------------------------------------------------

select

Date(date_trunc('week', Now()))  as FirstDayOfCurrentWeek,
Date(date_trunc('month', Now())) as FirstDayofCurrentMonth,
Date(date_trunc('year', Now()))  as FirstDayOfCurrentYear

firstdayofcurrentweek |firstdayofcurrentmonth |firstdayofcurrentyear |
----------------------|-----------------------|----------------------|
2017-11-06            |2017-11-01             |2017-01-01            |

---------------PostgreSQL----------------------------------------------------------------------

select

Date(date_trunc('week', Now()))  as FirstDayOfCurrentWeek,
Date(date_trunc('month', Now())) as FirstDayofCurrentMonth,
Date(date_trunc('year', Now()))  as FirstDayOfCurrentYear

firstdayofcurrentweek |firstdayofcurrentmonth |firstdayofcurrentyear |
----------------------|-----------------------|----------------------|
2017-11-06            |2017-11-01             |2017-01-01            |

----------------------------SQL Server---------------------------------------------------------

select 

convert(date, getdate()) as Today,
datepart(dw, getdate()) as Weekday,

case ----------------------------Mon-Sun week-----------------------------------------
	when datepart(dw, getdate()) = 1 then convert(date, dateadd(day, -6, getdate()))
	when datepart(dw, getdate()) = 2 then convert(date, dateadd(day,  0, getdate()))
	when datepart(dw, getdate()) = 3 then convert(date, dateadd(day, -1, getdate()))
	when datepart(dw, getdate()) = 4 then convert(date, dateadd(day, -2, getdate()))
	when datepart(dw, getdate()) = 5 then convert(date, dateadd(day, -3, getdate()))
	when datepart(dw, getdate()) = 6 then convert(date, dateadd(day, -4, getdate()))
	when datepart(dw, getdate()) = 7 then convert(date, dateadd(day, -5, getdate()))
                                                          end as FirstDayofCurrentWeek,


convert(date, convert(varchar(7), getdate(), 120) + '-01')    as FirstDayofCurrentMonth,
convert(date, convert(varchar(4), getdate(), 120) + '-01-01') as FirstDayofCurrentYear


Today      |Weekday |FirstDayofCurrentWeek |FirstDayofCurrentMonth |FirstDayofCurrentYear |
-----------|--------|----------------------|-----------------------|----------------------|
2017-11-12 |1       |2017-11-06            |2017-11-01             |2017-01-01            |


-------------------------------MySQL--------------------------------------------------------------

select 

Date(Now())                                                  as Today,
weekday(Now())                                               as WeekdayToday,

case #---------------------------Mon-Sun week--------------------------------
	when weekday(Now()) = 0 then date(Now())
	when weekday(Now()) = 1 then date(date_add(Now(), interval -1 day))
	when weekday(Now()) = 2 then date(date_add(Now(), interval -2 day))
	when weekday(Now()) = 3 then date(date_add(Now(), interval -3 day))
	when weekday(Now()) = 4 then date(date_add(Now(), interval -4 day))
	when weekday(Now()) = 5 then date(date_add(Now(), interval -5 day))
	when weekday(Now()) = 6 then date(date_add(Now(), interval -6 day))
                                                         end as FirstDayofCurrentWeek,
	
date_format(Now(), '%Y-%m-01')                               as FirstDayofCurrentMonth,
date_format(Now(), '%Y-01-01')                               as FirstDayofCurrentYear

Today      |WeekdayToday |FirstDayofCurrentWeek |FirstDayofCurrentMonth |FirstDayofCurrentYear |
-----------|-------------|----------------------|-----------------------|----------------------|
2017-11-12 |6            |2017-11-06            |2017-11-01             |2017-01-01            |

以上是关于sql 找到当前周,月,年的第一天的主要内容,如果未能解决你的问题,请参考以下文章

js 获取当前月和当前周的第一天和最后一天

sqlServer 求当前周的第一天和最后一天,当前月的第一天和最后一天,前三个月的第一天和今天

sql 获取当前月的第一天

sql 如何获取当前时间,所属周的开始时间和结束时间,周一为一个星期的第一天

SQL语句 如何取得指定月份的最后一天的日期

给定周数,返回 T-SQL 中一周的第一天