DATEPART 这个函数返回的周数是正好的还是多一周,为什么日历是52周呢
而select DATEPART(wk,'2022-12-31'),返回53周呢。
因为要和别的系统连接,中间有个对比周数的过程,别的系统返回2022年就是52周,但是在sqlserver是53周 怎么取到正确的52周
https://blog.csdn.net/Data_Money/article/details/117127456
造成星期不匹配的原因是:DatePart函数和SQL系统默认将星期7作为每周第一天,这个是西方的次序。而我们认为星期1才是每周第一天。
set datefirst 1---设置SQL一周从周一开始
select DATEPART(wk,'2022-12-31')
数据库里面这个函数算法就是这样的,跟日历统一只能是减一下,
select datepart(wk,'2022-01-01')
select datepart(wk,'2022-01-02')
这两个语句 第一个是第一周,第二个已经是第二周了,第一个是周六,第二个是周日,周日已经算第二周了