sql時間函數
① sql日期函數
datepart(weekday,cardBeginTime)
這是獲得表裡cardBeginTime這個欄位中的所有日期每天分別是星期幾
in (1,7) 是指獲取星期六和星期天的記錄
sql server 默認sunday 是每周開始第一天,所以取1,7代表星期六和星期天。
② 建立SQL 函數里有時間時間參數
個人認為你的函數參數是日期型,你在使用時給函數的值是字元型,轉換一下試試
③ 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時間函數
--MS SQL SERVER
SELECT DATEDIFF(MONTH,'2005-06-01',GETDATE()) M
/*結果:
M
-----------
78
(1 行受影響)
⑤ sql如何提取當前時間的函數
getdate()函數:取得系統當前的日期和時間。返回值為datetime類型的。
用法:getdate()
datepart()函數:以整數的形式返回時間的指定部分。
用法:datepart(datepart,date)
參數說明:datepart時要返回的時間的部分,常用取值year、month、day、hour、minute。
⑥ SQL時間函數
SQLServer2000中沒有這種數據類型,只有SQLServer2008中才有這種數據類型,名字叫time數據類型.time類型只有時分秒,沒有年月日.
在SQLServer2000中如果要實現這種效果,那麼就不適合用日期和時間類型,而應該採用字元串類型,值由時間類型轉換而來,如:
SELECT CONVERT(varchar(100), GETDATE(), 108)--結果: 10:57:49
⑦ SQL語句當前日期函數
SELECT GETDATE()即可得到當前日期
⑧ sql中日期函數
這樣就行了,注意你cast成nvarchar類型,那麼『年』這種字元串前一定要加N,:
declare @Year int
declare @Month int
select @Year =2010
select @Month =12
select
case when @Month = 12 then cast(@Year+1 as nvarchar)+N'年'+cast(@Month-11 as nvarchar)+N'月01'
else
cast(@Year as nvarchar)+N'年'+cast(@Month+1 as nvarchar)+N'月01' end+N'至'+
case when @Month = 12 then cast(@Year+1 as nvarchar)+N'年'+cast(@Month-11 as nvarchar)+N'月30'
else
cast(@Year as nvarchar)+N'年'+cast( @Month+1 as nvarchar)+N'月30' end
我也不知道你到底想要什麼東西,如果用datediff的話得到的就是一個天數,也沒有必要加上年月日了:
declare @Year int
declare @Month int
select @Year =2010
select @Month =4
select
datediff
(day,
case when @Month = 12 then cast(@Year+1 as nvarchar)+' '+cast(@Month-11 as nvarchar)+' 01'
else
cast(@Year as nvarchar)+' '+cast(@Month+1 as nvarchar)+' 01' end,
cast(@Year as nvarchar)+' '+cast( @Month as nvarchar)+' 01' )
⑨ sql 中時間轉換函數問題
樓主 你那樣寫肯定是不行的 後面語句是日期和整型的
我幫你改了 你按照換個寫法就沒有問題 經過測試
alter function getnextdays(@date date)
returns int
as
begin
declare @days int
--select @days=day(DATEADD(MONTH,2,@date) - day(@date))
select @days=day(DATEADD(DD,-day(GETDATE()),DATEADD(MONTH,2,@date)))
return @days
end
go
select dbo.getnextdays(GETDATE())