mysql中,一周預設是從週日到周一的,這和國外的習慣一樣,而中國是周一到週日算一周。所以在統計諸如「本週的資料」時,就需要特殊注意。
看到很多網上的文章,在處理這個點上寫很多**,其實mysql提供的week和yearweek函式中已經考慮到了這一點。
week函式介紹
通常,一年的正常年份為365天,閏年為366天。一年又可以分為許多周,每週有7天。 所以一年,我們經常有365/7 = 52周,周範圍是從1到52。
要檢視給定日期屬於哪個週數,您可以使用week函式。
語法:week(date, mode)
week函式接受兩個引數:
(1)date:是要獲取週數的日期。
(2)mode :是乙個可選引數,用於確定週數計算的邏輯。它允許您指定本週是從星期一還是星期日開始,返回的週數應在0到52之間或0到53之間。
如果忽略mode引數,預設情況下week函式將使用default_week_format系統變數的值。在我們的伺服器中,default_week_format的預設值為0。
下**說明了mode引數如何影響week函式:
模式一周的第一天範圍0
星期日0-53
1星期一
0-53
2星期日
1-53
3星期一
1-53
4星期日
0-53
5星期一
0-53
6星期日
1-53
7星期一
1-53
注意:上表中「今年有4天以上」表示:
如果星期包含1月1日,並且在新的一年中有4天或更多天,那麼這週是今年的第1周。
否則,這一周的數字是前一年的最後一周,下週才是今年的第1周。
所以在需要考慮年份的時候,使用yearweek函式更加恰當。
mysql 的 yearweek 是獲取年份和週數的乙個函式,函式形式為 yearweek(date[,mode])
week函式接受兩個引數:
(1)date:是要獲取週數的日期。
(2)mode :是乙個可選引數,用於確定週數計算的邏輯。它允許您指定本週是從星期一還是星期日開始,返回的週數應在0到52之間或0到53之間。
如果忽略mode引數,預設情況下week函式將使用default_week_format系統變數的值。在我們的伺服器中,default_week_format的預設值為0。
我們按照中國的習慣,把周一算成一周的第一天,分別通過week函式和yearweek函式來獲取2019-07-11所在的周
select week(『2019-07-11』,1);
返回值是28
select yearweek(『2019-07-11』,1);
返回值是201928
weekofyear函式是計算出當前日期所在週數,和yearweek(『日期』,1)的週數一致,
但yearweek(『日期』,1)在小於10的時候,不帶0
示例:select weekofyear(『2016-2-2』);
時間差的函式 timestampdiff
語法:timestampdiff(interval,datetime_expr1,datetime_expr2)。
說明:返回日期或日期時間表示式datetime_expr1 和datetime_expr2the 之間的整數差。
其結果的單位由interval 引數給出。該引數必須是時分秒年月日的乙個
時間新增的函式 timestampadd
語法:timestampadd(interval,int_expr,datetime_expr)
說明:將整型表示式int_expr 新增到日期或日期時間表示式
Keras中部分函式的使用總結
1 keras中concatenate和add層的不同 在網路結構的設計上,經常說densenet和inception中更多採用的是concatenate操作,而resnet更多採用的add操作,那麼這兩個操作有什麼異同呢?concatenate操作是網路結構設計中很重要的一種操作,經常用於將特徵聯...
python中部分函式用法的總結
在寫python指令碼時,通常會遇到一些函式,下面對這些的函式用法做乙個總結 1 strip 函式 作用 移除字串頭尾指定的字元 預設為空格或換行符 或字串行。案例 案例 a asdjfadf 建立物件 a.strip out 75 asdjfadf 刪除開頭和結尾還有字元a a.strip a o...
C Graphics中部分方法的使用和理解
1 drawarc pen,rectangle,single,single 說明 繪製一段弧線,弧線是橢圓的一部分,橢圓是矩形rectangle的內切橢圓。引數 pen是畫弧線使用的畫筆 rectangle是橢圓所在的矩形 第乙個single決定了弧線的起點,矩形有乙個中心,中心點向右為x軸正方向,...