Ⅰ sql Server日期函數之正確確定某天是星期幾
今天是星期幾,例子 1:
setlanguageN'English'
selectdatename(weekday,getdate())Wednesday今天是星期幾,例子 2:
setlanguageN'SimplifiedChinese'
selectdatename(weekday,getdate())星期三今天是星期幾,例子 3:
setdatefirst1
selectdatepart(weekday,getdate())3 星期三注意:這里用到了另外一個 SQL Server 日期函數 datepart()。 set datefirst 1 表示設置一周的第一天為星期一。在老美,他們的一周的第一天習慣為星期天。我們可以通過 @@datefirst 函數得到當前會話的 datefirst 設置值。
select@@datefirst1你可能有疑問:set language 後面的語言參數是從哪裡得到的?可以得到其他國家語言中的星期幾嗎?當然是可以的了源碼天空
, 請看下面:
selectalias,*frommaster..syslanguages
如果我想得到韓語中的星期幾,可以這樣:
setlanguageN'Korean'
Ⅱ SQL Server中的時間函數有那些,最好舉例說明
比較常用的時間函數有DateAdd,DateDiff,DateName,DatePart,Day,Getdate,Month,Year,GetUTCDate這幾個函數。
以下依次說明,如需更詳細說明請參考SQL幫助文檔:
1. DateAdd函數
在向指定日期加上一段時間的基礎上,返回新的 datetime 值。
語法
DATEADD ( datepart , number, date )
示例
此示例列印出 pubs 資料庫中標題的時間結構的列表。此時間結構表示當前發布日期加上 21 天。
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
2.DateDiff函數
返回跨兩個指定日期的日期和時間邊界數。
語法
DATEDIFF ( datepart , startdate , enddate )
示例
此示例確定在 pubs 資料庫中標題發布日期和當前日期間的天數。
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
3.DateName函數
返回代表指定日期的指定日期部分的字元串。
語法
DATENAME ( datepart , date )
示例
此示例從 GETDATE 返回的日期中提取月份名。
SELECT DATENAME(month, getdate()) AS 'Month Name'
4.DatePart函數
返回代表指定日期的指定日期部分的整數。
語法
DATEPART ( datepart , date )
示例
此示例顯示 GETDATE 及 DATEPART 的輸出。
SELECT DATEPART(month, GETDATE()) AS 'Month Number'
5.Day函數
返回代表指定日期的天的日期部分的整數。
語法
DAY ( date )
示例
此示例返回從日期 03/12/1998 後的天數。
SELECT DAY('03/12/1998') AS 'Day Number'
6.GetDate函數
按 datetime 值的 Microsoft® SQL Server™ 標准內部格式返回當前系統日期和時間。
語法
GETDATE ( )
示例
下面的示例得出當前系統日期和時間:
SELECT GETDATE()
7.Month函數
返回代表指定日期月份的整數。
語法
MONTH ( date )
示例
下面的示例從日期 03/12/1998 中返回月份數。
SELECT "Month Number" = MONTH('03/12/1998')
8.Year函數
返回表示指定日期中的年份的整數。
語法
YEAR ( date )
示例
下例從日期 03/12/1998 中返回年份數。
SELECT "Year Number" = YEAR('03/12/1998')
9.GetUTCDate函數
返回表示當前 UTC 時間(世界時間坐標或格林尼治標准時間)的 datetime 值。當前的 UTC 時間得自當前的本地時間和運行 SQL Server 的計算機操作系統中的時區設置。
語法
GETUTCDATE()
示例
下例從日期 03/12/1998 中返回年份數。
SELECT GETUTCDATE()
Ⅲ 在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
(3)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語句計算每個月有幾個周六的函數
先建立函數,再執行下面的語句
CREATE FUNCTION getday --
(@datestart datetime,--啟始日期
@dateend datetime, --結束日期
@DW VARCHAR(6)) --星期幾
RETURNS INT
AS
BEGIN
DECLARE @DAYCOUNT int
SET @DAYCOUNT=0
while @datestart<=@dateend
begin
if datename(dw,@datestart)=@DW
set @DAYCOUNT=@DAYCOUNT+1
SET @DATESTART=DATEADD(DAY,1,@DATESTART)
end
RETURN(@DAYCOUNT)
END
GO
SELECT DBO.GETDAY('2008-01-01','2008-12-31','星期六') AS SATDAY,
DBO.GETDAY('2008-01-01','2008-12-31','星期日') AS SUNDAY
Ⅳ sql中日期函數的用法
1.DateAdd ( I , N , D )
將一個日期加上一段期間後的日期。 I :設定一個日期( Date )所加上的一段期間的單位。譬如 interval="d" 表示 N的單位為日。 I的設定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 時
n Minute 分
s Second 秒
N :數值表達式,設定一個日期所加上的一段期間,可為正值或負值,正值表示加(結果為 >date 以後的日期),負值表示減(結果為 >date 以前的日期)。
D :待加減的日期。
例子: DateAdd ( "m" , 1 , "31-Jan-98")
結果: 28-Feb-98
說明:將日期 31-Jan-98 加上一個月,結果為 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
結果: 1999/2/9
說明:將一個日期 30-Jan-99 加上 20 天後的日期。
2.Day( 日期的字元串或表達式 )
傳回日期的「日」部份。
例子: Day(" 12/1/1999 ")
結果: 1
3.DateDiff (I , D1 , D2[,FW[,FY]])
計算兩個日期之間的期間。
I :設定兩個日期之間的期間計算之單位。譬如 >I="m" 表示計算的單位為月。 >I 的設定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 時
n Minute 分
s Second 秒
D1 ,D2:計算期間的兩個日期表達式,若 >date1 較早,則兩個日期之間的期間結果為正值;若 >date2 較早, 則結果為負值。
FW :設定每周第一天為星期幾, 若未設定表示為星期天。 >FW 的設定值如下:
0 使用 >API 的設定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :設定一年的第一周, 若未設定則表示一月一日那一周為一年的第一周。 >FY 的設定值如下:
0 使用 >API 的設定值。
1 一月一日那一周為一年的第一周
2 至少包括四天的第一周為一年的第一周
3 包括七天的第一周為一年的第一周
例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")
結果: 97
說明:顯示兩個日期之間的期間為 97 天
想查詢2007年2月9日的付款流水有單筆交易出現多張小票號的情況的小票號
這個要看一下你的表結構是什麼樣的啊?
Ⅵ SQL由已知幾幾年第幾周星期幾推出日期,麻煩給個函數
--我寫的函數如下(湊合著用)
Create Function xfn_GetDate(@YEAR INT,@WEEK INT,@DAY INT)
RETURNS DATETIME
AS
BEGIN
DECLARE @RST DATETIME
SET @RST=CAST( (CAST(@YEAR AS VARCHAR(20))+'-01-01') AS DATETIME)
WHILE @RST<CAST( (CAST(@YEAR AS VARCHAR(20))+'-12-31') AS DATETIME)
BEGIN
IF @WEEK=DATEPART(WW,@RST) AND @DAY=DATEPART(DW,@RST)
RETURN @RST
SET @RST=DATEADD(DD,1,@RST)
END
RETURN @RST
END
說明:@YEAR為年份,@WEEK為第幾星期,@DAY為禮拜的第幾天
運行
SELECT DBO.xfn_GetDate('2009',6,3)
得到的日期是:2009-02-03 00:00:00.000
我用的方法很粗糙,只是遍歷年份的每一天而已..
Ⅶ SQL中可以提取周末日期的函數
select*
fromthetable
wheredatepart(weekday,thedatefield)in(1,7)
Ⅷ 用SQL語句計算出給定日期是星期幾
1、首先可以直接用datepart函數,第一個參數設置成weekday就可以了,如下圖所示。
Ⅸ SQL SERVER查詢時間是一年中第幾周的函數
1、獲取當前系統資料庫的日期和時間,可以利用函數GETDATE(),select GETDATE()。
Ⅹ SQL怎麼獲取星期幾
今天工作中遇到一個需求:在每周的星期一至星期五的下午四點到五點,禁用一個程序的功能。這個功能是依賴於資料庫中的存儲過程的,因此想到了一個在存儲過程中處理這個方法的解決方案。
if(當前時間在星期一至星期五之間and當前時間在16點至17點之間)beginreturnend
這個方法基於兩個T-SQL內置函數:DATEPART()和@@DATEFIRST
DATEPART()函數的第一個參數可以是」weekday」,這時返回日期的星期數,在當前星期序列的次序。這個序列次序則依賴於SET DATEFIRST設置的參數,且可以通過@@DATEFIRST函數查看。所以DATEPART(WRRKDAY,GETDATE())這樣獲得的一個值是相對值。且相對的原點還是未知,這樣會造成BUG。因此應該對這個方法進行一定的修改。
–加入一些相對偏移後的獲取當前是星期幾的方法DATEPART(WEEKDAY,