用SQL語言編寫一些時間程式範例

2021-04-27 09:40:23 字數 1974 閱讀 7007

1.顯示本月第一天 

select dateadd(mm,datediff(mm,0,getdate()),0)

select dateadd(mm,datediff(mm,0,getdate()),0)

2.顯示本月最後一天 

select dateadd(day,-1,convert(datetime,convert

(varchar(8),dateadd(month,1,getdate()),120)+』01』,120))

select dateadd(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0)) 

select dateadd(day,-1,dateadd(mm,1,dateadd(mm,datediff(mm,0,getdate()),0)))  --jt17 森林

3.上個月的最後一天 

select dateadd(ms,-3,dateadd(mm,datediff(mm,0,getdate()),0)) 

select dateadd(day,-1,dateadd(mm,0,dateadd(month,datediff(month,0,getdate()),0)))--jt17森林

4.本月的第乙個星期一i 

select dateadd(wk,datediff(wk,0, dateadd(dd,6-datepart(

day,getdate()),getdate())),0) 

5.本年的第一天 

select dateadd(yy,datediff(yy,0,getdate()),0) 

6.本年的最後一天 

select dateadd(ms,-3,dateadd(yy,datediff(yy,0,getdate())+1,0)) 

7.去年的最後一天 

select dateadd(ms,-3,dateadd(yy,datediff(yy,0,getdate()),0)) 

8.本季度的第一天 

select dateadd(qq,datediff(qq,0,getdate()),0) 

9.本週的星期一 

select dateadd(wk,datediff(wk,0,getdate()),0) 

10.查詢本月的記錄 

select * from tablename where datepart(mm, thedate)

=datepart(mm, getdate()) and datepart(yy, thedate) 

= datepart(yy, getdate()) 

11.查詢本週的記錄 

select * from tablename where datepart(wk, thedate) = datepart

(wk, getdate()) and datepart(yy, thedate) = datepart(yy, getdate()) 

12.查詢本季的記錄 注:其中:getdate()是獲得系統時間的函式。 

select * from tablename where datepart(qq, thedate) = datepart

(qq, getdate()) and datepart(yy, thedate) = datepart(yy, getdate()) 

13.獲取當月總天數: 

select datediff(dd,getdate(),dateadd

(mm, 1, getdate()))

select datediff(day,

dateadd(mm, datediff(mm,』』,getdate()), 』』),

dateadd(mm, datediff(mm,』』,getdate()), 』1900-02-01』)) 

14.獲取當前為星期幾 

datename(weekday, getdate()) 

編寫SQL指令碼的一些注意事項

在應用軟體系統的開發中,對資料庫的操作是必不可少的。在開發團隊中,一般不允許開發人員隨意的修改表結構 檢視結構或系統資料,這對專案組來說,危害是致命的,特別是在已經上線的環境中,更是嚴禁這種行為。我們採取的一般做法是開發人員提交sql指令碼,統一交由管理員來執行這些指令碼,在執行指令碼過程中可能會遇...

SQL效率提公升之一些SQL編寫建議並有效利用索引

1.日期屬性列,不會因為有分秒差別而減慢查詢速度 2.使用like比較進行查程式設計客棧詢時,如果模式以特定字串如 abc 開頭,使用索引則會提高效率 如果模式以萬用字元如 xyz 開頭,則索引不起作用 3.or會引起全表掃瞄,且和in的作用相當 4.盡量少用not 5.exists 和 in的執行...

sql時間轉換時分秒 SQL一些時間格式的轉換

convert日期轉換格式為20或120時,得到的字串是不帶毫秒的。如 select convert varchar 23 getdate 120或20 2003 01 07 21 46 43 日期轉換格式為21或121時,得到的字串是帶毫秒的 select convert varchar 23 g...