sql語句中日期時間類型怎么比較
一.存儲日期的字段為日期類型
MySql(Date、DateTime、TimeStamp等):
方法一:直接比較
select * from test where create_time between '2015-03-03 17:39:05' and '2016-03-03 17:39:52';
方法二:用unix_timestamp函數,將字符型的時間,轉成unix時間戳
select * from test where unix_timestamp(create_time) >
unix_timestamp('2011-03-03 17:39:05') and unix_timestamp(create_time)
個人覺得這樣比較更踏實點兒。
Oracle(Date,TimeStamp等):
方法一:將字符串轉換為日期類型
select * from test where create_time between to_date('2015-03-03 17:39:05') and to_date('2016-03-03 17:39:52');
二.存儲日期類型的字段為數值類型
MySql(bigint):
方法一:將日期字符串轉換為時間戳
select * from test where create_time >unix_timestamp('2011-03-03
17:39:05') and create_time方法二:將時間戳轉換為日期類型
select * from test where from_unixtime(create_time/1000) between '2014-03-03 17:39:05' and '2015-03-03 17:39:52');
怎么使用sql語句查詢日期所在周的一周各天
檢索日期所在周的一周各天日期方法 一、用到的函數有datepart(),dateadd() 1、datepart()函數,返回代表指定日期的指定日期部分的整數。
語法:DATEPART ( datepart ,date ) 參數:datepart 是指定應返回的日期部分的參數。參數如下 2、DATEADD() 函數在日期中添加或減去指定的時間間隔。
語法:DATEADD(datepart,number,date) date 參數是合法的日期表達式。number 是您希望添加的間隔數;對于未來的時間,此數是正數,對于過去的時間,此數是負數。
datepart 參數可以是下列的值: 二、以系統當前時間為例,檢索一周各天時間的語句如下: 1、DATEPART(weekday,getdate())返回的是整型數值1-7,分別代表周日、周一到周六 2、語句分別獲取周日到周六的日期時間,然后用union 進行檢索結果連接。 3、已獲取周日時間為例: DATEPART(weekday,getdate()) 返回1,即當前日期就是周日,那么輸出當前時間getdate(), DATEPART(weekday,getdate()) 返回2,即前日期是周一,那么周日是前一天,使用函數獲取前一天的日期:dateadd(dd,-1,getdate()) 以此類推就獲取了日期所在周的周日日期時間。
select case when DATEPART(weekday,getdate())=1 then getdate() when DATEPART(weekday,getdate())=2 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,-3,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-4,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-5,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-6,getdate()) end as '日期','周日' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-3,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-4,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-5,getdate()) end as '日期','周一' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-3,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-4,getdate()) end as '日期','周二' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-2,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-3,getdate()) end as '日期','周三' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,4,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,-1,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-2,getdate()) end as '日期','周四' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,5,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,4,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,2,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,1,getdate()) when DATEPART(weekday,getdate())=6 then dateadd(dd,0,getdate()) when DATEPART(weekday,getdate())=7 then dateadd(dd,-1,getdate()) end as '日期','周五' unionselectcase when DATEPART(weekday,getdate())=1 then dateadd(dd,6,getdate()) when DATEPART(weekday,getdate())=2 then dateadd(dd,5,getdate()) when DATEPART(weekday,getdate())=3 then dateadd(dd,4,getdate()) when DATEPART(weekday,getdate())=4 then dateadd(dd,3,getdate()) when DATEPART(weekday,getdate())=5 then dateadd(dd,2,get。
如何計算SQL語句執行時間
一、按照*及CSDN等搜索結果 在SQL語句前面加上了這一句: 經查詢,SET STATISTICS TIME ON命令報告下面的查詢的實際占用時間和CPU使用情況。
使用后覺得給出的時間很細致,跟執行過程結合的很緊密,但是比較多,似乎不夠精確。 二、CNBLOGS網友的文章里 Code use northwind declare @date1 datetime declare @date2 datetime select @date1=getdate() --測試語句 select * from employees select @date2=getdate()。
如何用SQL語句把出生日期計算年齡,比如是1984-2-16怎么算出年齡
計算年齡就是,計算當前時間與出生日期的年份差的過程,所以用到DATEDIFF 函數。
一、DATEDIFF 函數簡介 1、函數功能:返回兩個日期之間的間隔指定單位值。 2、語法:DATEDIFF ( date-part, date-expression-1, date-expression-2 ) date-part :指定要測量其間隔的日期部分,常用參數說明 date-expression-1 某一間隔的起始日期。
date-expression-2 某一間隔的結束日期。 函數返回值:從date-expression-2 值中減去 Date-expression-1,返回兩個參數之間 date-parts 的值。
3、范例演示: SELECT datediff( hh, '4:00AM', '5:50AM' )下面的語句返回 102:SELECT datediff( mm, '1987/05/02', '1995/11/15' )下面的語句返回 0:SELECT datediff( dd, '00:00', '23:59' )下面的語句返回 4:SELECT datediff( dd,'1999/07/19 00:00','1999/07/23 23:59' )下面的語句返回 0:SELECT datediff( mm, '1999/07/19', '1999/07/23' )下面的語句返回 1:SELECT datediff( mm, '1999/07/19', '1999/08/23' )二、通過出生日期計算年齡的實例 1、實例表格:a_test 2、SQL語句如下: select bh,rq,case when datediff(yy,rq,getdate()) = 0 then cast(datediff(mm,rq,getdate()) as char(3)) +'個月' else cast(datediff(yy,rq,getdate()) as char(3)) +'歲' end as '年齡' from a_test;語句解析:語句主體部分 case when datediff(yy,rq,getdate()) = 0 then cast(datediff(mm,rq,getdate()) as char(3)) +'個月' else cast(datediff(yy,rq,getdate()) as char(3)) +'歲' end as '年齡'datediff函數計算出生日期rq與系統當前時間getdate()的年份差值,如果差值大于0,就計算月份差,顯示月份為年齡。 語句結果如圖:。
怎么用SQL語句計算時間間隔
DATEDIFF
返回跨兩個指定日期的日期和時間邊界數。
語法
DATEDIFF ( datepart ,startdate ,enddate )
參數
datepart
是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft? SQL Server? 識別的日期部分和縮寫。
日期部分縮寫
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
startdate
是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。
因為 smalldatetime 只精確到分鐘,所以當用 smalldatetime 值時,秒和毫秒總是 0。
如果您只指定年份的最后兩位數字,則小于或等于"兩位數年份截止期"配置選項的值的最后兩位數字的數字所在世紀與截止年所在世紀相同。大于該選項的值的最后兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。
有關時間值指定的更多信息,請參見時間格式。有關日期指定的更多信息,請參見 datetime 和 smalldatetime。
enddate
是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。
返回類型
integer
注釋
startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。
當結果超出整數值范圍,DATEDIFF 產生錯誤。對于毫秒,最大數是 24 天 20 小時 31 分鐘零 23.647 秒。對于秒,最大數是 68 年。
計算跨分鐘、秒和毫秒這些邊界的方法,使得 DATEDIFF 給出的結果在全部數據類型中是一致的。結果是帶正負號的整數值,其等于跨第一個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。
示例
此示例確定在 pubs 數據庫中標題發布日期和當前日期間的天數。
USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO
如何查看sql語句執行時間
declare @sttime datetime
set @sttime=getdate()
print @sttime
Select * from case1219 -- 把你的sql語句放在這里
SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'
或者這么寫
DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;
SET @t1 = GETDATE();
Select * from dimDate ;-- 把你要查詢的sql語句放在這里
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;