select getdate() as '當前日期',
datename(year,getdate()) as '年',
datename(month,getdate()) as '月',
datename(day,getdate()) as '日',
datename(dw,getdate()) as '星期',
datename(week,getdate()) as '週數',
datename(hour,getdate()) as '時',
datename(minute,getdate()) as '分',
datename(second,getdate()) as '秒'
結果:2009-08-13 23:07:15.403 2009 08 13 星期四 33 23 7 15
2007-11-13
sql server2000 時間操作
1.顯示本月第一天
select dateadd(mm,datediff(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)
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))
3.上個月的最後一天
select dateadd(ms,-3,dateadd(mm,datediff(mm,0,getdate()),0))
4.本月的第乙個星期一
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.查詢本季的記錄
select * from tablename where datepart(qq, thedate) = datepart(qq, getdate()) and datepart(yy, thedate) = datepart(yy, getdate())
其中: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())
15. 當前系統日期、時間
select getdate()
16. dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
17. datediff 返回跨兩個指定日期的日期和時間邊界數。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
18. datepart 返回代表指定日期的指定日期部分的整數。
select datepart(month, '2004-10-15') --返回 10
年為year,月為month,日為day,小時hour,分為minute,秒為second
19. datename 返回代表指定日期的指定日期部分的字串
select datename(weekday, '2004-10-15') --返回:星期五
17. day(), month(),year() --可以與datepart對照一下
select 當前日期=convert(varchar(10),getdate(),120),當前時間=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15'),今天是週幾=datename(weekday,'2004-10-15')
函式 引數/功能
getdate( ) 返回系統目前的日期與時間
datediff (interval,date1,date2) 以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2-date1
dateadd (interval,number,date) 以interval指定的方式,加上number之後的日期
datepart (interval,date) 返回日期date中,interval指定部分所對應的整數值
datename (interval,date) 返回日期date中,interval指定部分所對應的字串名稱
引數 interval的設定值如下:
值 縮 寫(sql server) 說明
year yy 年 1753 ~ 9999
quarter qq 季 1 ~ 4
month mm 月1 ~ 12
day of year dy 一年的日數,一年中的第幾日 1-366
day dd 日,1-31
weekday dw 一周的日數,一周中的第幾日 1-7
week wk 周,一年中的第幾周 0 ~ 51
hour hh 時0 ~ 23
minute mi 分鐘0 ~ 59
second ss 秒 0 ~ 59
millisecond ms 毫秒 0 ~ 999
舉例:1.getdate() 用於sql server :select getdate()
2.datediff('s','2005-07-20','2005-7-25 22:56:32')返回值為 514592 秒
datediff('d','2005-07-20','2005-7-25 22:56:32')返回值為 5 天
3.datepart('w','2005-7-25 22:56:32')返回值為 2 即星期一(週日為1,週六為7)
datepart('d','2005-7-25 22:56:32')返回值為 25即25號
datepart('y','2005-7-25 22:56:32')返回值為 206即這一年中第206天
datepart('yyyy','2005-7-25 22:56:32')返回值為 2005即2023年
應用示例:
查詢某個日期之間的記錄資料:
select * from 表 where 開始時間》'2005-02-01' and 結束時間<='2005-06-05'order by id desc
查詢最近30內的記錄資料:
select * from 表 where datediff(dd,last_date,getdate())<=30 order by id desc
查詢最近一周內的點選率大於100的記錄資料:
select * from t_business_product where hit_count>100 and datediff(dw,last_date,getdate())<=7 order by id desc
查詢某一年(如2023年)的記錄資料:
select * from 表 where datepart(yy,last_date)=2006 order by id desc
或select * from 表 where datepart(year,last_date)=2006 order by id desc
如查詢系統當前年份插入的一年內的資料:
select * from 表 where datepart(yy,getdate())=datepart(yy,getdate()) order by id desc
取系統日期 並將 日期 分開
select 當前日期=convert(varchar(10),dateadd(day,-1,getdate()),120),當前時間=convert(varchar(8),getdate(),114)
---------------------取 年月日
year(),month(),date()
處理問題的方法
1.遇到問題不要急躁,盲目的急於去解決這乙個問題。不妨冷靜思考一下,這個問題出現的原因,其他相關頁面會不會出現類似的問題,修改後對其他的頁面會不會產生影響。這樣就可以避免修改部分正常了,卻又出現了新的問題,導致工作量增大。2.對時間明確管理,要明確知道自己的工作量,能夠合理安排自己每天的工作。給自己...
下標處理問題
下標處理問題 主要是針對於插入排序演算法寫的程式,其他情況可以借鑑這些思路。數學上或者通常意義上,下標都是從1開始的,但是在多數程式語言裡面陣列下標都是從0開始的,這就很惱火了,簡單乙個下標處理起來卻異常麻煩!請看 例如 1 典型的陣列下標越界問題 假設有個陣列 a 0 a 1 我們要用插入法排序,...
ORACLE 異常處理問題處理
create or replace procedure pro people as begin select per id into v per id from people where id i id exception when no data found then v per id 1 whe...