⑴ sql server關於判斷日期為當月第幾周星期幾問題
星期幾問題:DatePart, DateName 都可以滿足你的要求了
當月第幾周:簡單點,用 DatePart,這個可能跟系統區域語言設置有關(國外都是周日是第一天,中國周一是第一天),具體想更好,就自己看著辦啦。
舉個例:求 2013/11/07是11月第幾周
SELECT DATEPART(WEEK, '2013/11/07') - DATEPART(WEEK, '2013/11/01') + 1
即,求出 11月7 號是一年中第幾周,減去 11月1 號是一年中第幾周的值,因從 1 開始計數,所以加個 1
⑵ sql 取周數
先用dateadd(dd,1,.....)來加一天,再用你的辦法
如cast(dateadd(dd,1,getdate()) as int)/7-cast(dateadd(dd,1,'2009-1-1') as int)/7
⑶ sql獲取當前周幾
使用datename函數
⑷ sql怎麼把一年中的每周數都顯示出來
LZ給的紅包實在少點。回頭給補上呀!
----------------------------
這個題的難度不再怎麼顯示周,而是中國的文化問題,中國把周一當第一天,而中國用的大多數資料庫都是國外的,國外基本都是把周日當第一天,所以按周統計或排序的基本都有誤差,很多函數也用不了。
使用的是SqlServer資料庫,別的資料庫也會有以上問題,LZ自己多思考,方法如下:
(datepart(week, [CreateDate] + @@DateFirst - 1)-1) 才是真正的在中國能用的一年中的第幾周。記住這是一年中的,不能跨年份,跨年份要用where 過濾年份。
第一:排序輸出
SELECT [CreateDate], (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
FROM [ST_Inventory]
order by (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
第二:分組輸出
SELECT MAX([CreateDate]), (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
FROM [ST_Inventory]
group by (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
⑸ sql 時間星期幾
selectdatename(dw,getdate())
取日期的各項參數
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小時 hh
分鍾 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
納秒 ns
樓上太謙虛了~
⑹ 在sql中怎樣獲得已知日期是星期幾
Oracle資料庫:
第一個:SELECT DECODE(dw,
0,
'星期天',
1,
'星期一',
2,
'星期二',
3,
'星期三',
4,
'星期四',
5,
'星期五',
6,
'星期六') WEEK_DAY
FROM (SELECT 7 -
TO_NUMBER(NEXT_DAY(TO_DATE('2012-12-12', 'yyyy-mm-dd'), 1) -
TO_DATE('2012-12-12', 'yyyy-mm-dd')) dw
FROM al);
第二個語句:
SELECT TO_CHAR(TO_DATE('2012-12-12', 'YYYY-MM-DD'), 'DAY') WEEK_DAY
FROM DUAL
SqlServer資料庫:
select case datepart(weekday, getdate())
when 1 then
'星期天'
when 2 then
'星期一'
when 3 then
'星期二'
when 4 then
'星期三'
when 5 then
'星期四'
when 6 then
'星期五'
when 7 then
'星期六'
end
(6)sql周幾擴展閱讀:
SQL相關函數:
SQL Aggregate 函數:SQL Aggregate 函數計算從列中取得的值,返回一個單一的值。
有用的 Aggregate 函數:AVG() - 返回平均值,COUNT() - 返回行數,FIRST() - 返回第一個記錄的值,LAST() - 返回最後一個記錄的值,MAX() - 返回最大值,MIN() - 返回最小值,SUM() - 返回總和
SQL Scalar 函數:SQL Scalar 函數基於輸入值,返回一個單一的值。
有用的 Scalar 函數:UCASE() - 將某個欄位轉換為大寫,LCASE() - 將某個欄位轉換為小寫,MID() - 從某個文本欄位提取字元;
LEN() - 返回某個文本欄位的長度,ROUND() - 對某個數值欄位進行指定小數位數的四捨五入,NOW() - 返回當前的系統日期和時間,FORMAT() - 格式化某個欄位的顯示方式。
參考資料:網路——sql
⑺ SQL如何查詢連續幾周的數
例:查詢 『2017-1-1』是2017年的第幾周,語句如下
1
select datepart(wk,'2017-1-1')
datepart函數說明
一、函數功能:DATEPART() 函數用於返回日期/時間的單獨部分,比如年、月、日、小時、分鍾等等。
二、語法:DATEPART(datepart,date)
三、參數說明:date 參數是合法的日期表達式。datepart 參數可以是下列的值:
四、實例演示
假設我們有下面這個 "Orders" 表:
我們使用如下 SELECT 語句:
1
2
3
4
5
SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay
FROM Orders
WHERE OrderId=1
⑻ 怎樣用SQL算出一個時間段中一共有幾周
看你不滿一周的怎麼處理了:
(1)不滿一周按一周計:
select datediff(week,起始時間,截止時間)
(2)不滿一周捨去:
select datediff(day,起始時間,截止時間)/7
(3)不滿一周按小數計:
select datediff(day,起始時間,截止時間)*1.0/7
至於要保留幾位小數之類的就在此基礎上調用相關的數值函數就行.
以上針對sql server資料庫.
⑼ SQL語句算出今天是這個月的星期幾
sql server
SELECT DATEPART(weekday,GETDATE())
注意外國人把星期天當作一個星期的第一天,所以1是星期天
⑽ SQL怎麼獲取星期幾
今天工作中遇到一個需求:在每周的星期一至星期五的下午四點到五點,禁用一個程序的功能。這個功能是依賴於資料庫中的存儲過程的,因此想到了一個在存儲過程中處理這個方法的解決方案。
if(當前時間在星期一至星期五之間and當前時間在16點至17點之間)beginreturnend
這個方法基於兩個T-SQL內置函數:DATEPART()和@@DATEFIRST
DATEPART()函數的第一個參數可以是」weekday」,這時返回日期的星期數,在當前星期序列的次序。這個序列次序則依賴於SET DATEFIRST設置的參數,且可以通過@@DATEFIRST函數查看。所以DATEPART(WRRKDAY,GETDATE())這樣獲得的一個值是相對值。且相對的原點還是未知,這樣會造成BUG。因此應該對這個方法進行一定的修改。
–加入一些相對偏移後的獲取當前是星期幾的方法DATEPART(WEEKDAY,