MS SQL 日期操作及只獲取日期的方法

2021-06-16 05:27:11 字數 3801 閱讀 4506

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 把日期或數字轉換為字...