dateadd&datediff的使用:
---上一周
select dateadd(wk,datediff(wk,0,getdate())-1,0)
select dateadd(wk,datediff(wk,0,getdate())-1,6)
---本週
select dateadd(wk,datediff(wk,0,getdate()),0)
select dateadd(wk,datediff(wk,0,getdate()),6)
---下一周
select dateadd(wk,datediff(wk,0,getdate())+1,0)
select dateadd(wk,datediff(wk,0,getdate())+1,6)
---上一月第一天
select dateadd(mm,datediff(mm,0,getdate())-1,0)
---本月第一天
select dateadd(mm,datediff(mm,0,getdate()),0)
---下一月第一天
select dateadd(mm,datediff(mm,0,getdate())+1,0)
---本月方法一
declare @now datetime
declare @fistdayofcurrentmonth datetime
declare @lastdayofcurrentmonth datetime
set @now = getdate()
set @fistdayofcurrentmonth = @now - day(@now) + 1
set @lastdayofcurrentmonth = dateadd(month, 1, @now - day(@now) + 1) - 1
select @fistdayofcurrentmonth
select @lastdayofcurrentmonth
---本月方法二---
declare @fistdayofcurrentmonth datetime
declare @lastdayofcurrentmonth datetime
set @fistdayofcurrentmonth = dateadd(mm,datediff(mm,0,getdate()),0)
set @lastdayofcurrentmonth = dateadd(month, 1, @fistdayofcurrentmonth) - 1
select @fistdayofcurrentmonth
select @lastdayofcurrentmonth
---上月---
declare @fistdayoflastmonth datetime
declare @lastdayoflastmonth datetime
set @fistdayoflastmonth = dateadd(mm,datediff(mm,0,getdate())-1,0)
set @lastdayoflastmonth = dateadd(month, 1, @fistdayoflastmonth) - 1
select @fistdayoflastmonth
select @lastdayoflastmonth
datepart()函式的使用
* datepart()函式可以方便的取到時期中的各個部分
* 以下簡單的語句可以演示所取到的結果
---如日期:2011-07--02 18:15:36.513---
select getdate()
---yy:取年 2011---
select datepart(yy,getdate())
--- mm:取月 8---
select datepart(mm,getdate())
---dd:取月中的天 2
select datepart(dd,getdate())
--- dy:取年中的天 183
select datepart(dy,getdate())
---wk:取年中的周 27
select datepart(wk,getdate())
--- dw:取周中的天 1---
select datepart(dw,getdate())
select datepart(qq,getdate())
--- hh:取小時 18
select datepart(hh,getdate())
---mi:取分鐘 15
select datepart(mi,getdate())
---ss:取秒 36
select datepart(ss,getdate())
---計算從今天到12/25/2006還有多少天
select datediff(dd,getdate(),'12/25/2006')
--計算從今天到12/25/2006還有多少個月
select datediff(mm,getdate(),'12/25/2006')
---以字串而不是數字的形式得到今天的月份(07)
select datename(mm,getdate())
- --在目前的日期日期上加30天
select dateadd(dd,30,getdate())
---在目前的日期日期上加3個月
select dateadd(mm,3,getdate())
---在目前的日期日期上加1年
select dateadd(yy,1,getdate())
---得到本季度第一天
select dateadd(qq,datediff(qq,0,getdate()), 0)
---得到上主、季度第一天
select dateadd(mm,-3,dateadd(qq, datediff(qq,0,getdate()), 0))
用sql只獲取日期的方法用getdate()方法可以獲取當現的日期加上時間。
但是如果我們只需要得到當前的日期,不需要時間部分,或者不需要日期只要時間部分,再或者我要只要欄位中的日期以某種形式顯示,應該怎麼操作呢?
可以使用 convert(varchar(10),getdate(),120)這樣的方法來實現,其中varchar(10)定義的是你要的字段的長度,當然長度的不同返回的也會不的,如果我們只要日期部分,設
10正好為日期長度,如果設成19則正好可以讀到時間部分。現在介紹最後面代的引數。
分別以代的引數及例項效果說明(下表)
引數結果
10005 8 2006 9:27pm
10105/08/2006
1022006.05.08
10308/05/2006
10408.05.2006
10508-05-2006
10608 05 2006
10705 08, 2006
10821:30:51
10905 8 2006 9:31:11
11005-08-2006
1112006/05/08
11220060508
11308 05 2006 21:31:59
11421:33:06:503
1202006-05-08 21:33:38
SQL日期操作及只獲取日期的方法
select getdate select datepart mm,getdate select datepart yy,getdate select datepart dd,getdate select datepart dy,getdate select datepart wk,getdate ...
SQL中只獲取日期值
datatime型的字段make date,裡面的值是 2002 12 02 00 00 00.000 我用什麼函式,或者簡便的方法,可以取出像這樣的資料 2002 12 02 只取日期,月日要補零 要得到不同格式的日期和時間,你需要使用函式convert 例如,當下面的這個語句執行時,顯示的時間將...
Oracle 獲取當前日期及日期格式
oracle 獲取當前日期及日期格式 獲取系統日期 sysdate 格式化日期 to char sysdate yy mm dd hh24 mi ss 或 to date sysdate yy mm dd hh24 mi ss 格式化數字 to number 注 to char 把日期或數字轉換為字...