sql日期計算
⑴ sql如何計算指定日期當前月
給出的日期求當月一號的方法你的寫法應該是比較簡單的方法了,不過感覺你給轉換成char型不太好,最好是varchar型的,另外你的寫法可以簡寫成
select convert(varchar(6),cast('2006-3-8' as datetime),112)+'01'
這樣得到的'20060301'可以直接作為日期來使用,不必再轉換。
得到之前幾個個月的第一天可以直接用dateadd來實現
比如得到3月1日的上一月1日,也就是2月1日的方法是
select dateadd(month,-1,convert(varchar(6),cast('2006-3-8' as datetime),112)+'01')
⑵ SQL 日期計算
假設a是那個欄位
convert(varchar(6),dataadd(month,-1,left(a,4) + '/' + right(a,2) + '/01'),112)
請參考
⑶ SQL 怎麼計算時間
SELECTDATEDIFF(mi,intime,outtime)ASElapsedTimeFROM[表名]
你可以使用DATEDIFF(datepart,startdate,enddate)函數,
datepart 參數可以是下列的值:
datepart 縮寫
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小時 hh
分鍾 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
納秒 ns
⑷ SQL Server各種日期計算方法
本周的星期一
這里我是用周(wk)的時間間隔來計算哪一天是本周的星期一。
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
一年的第一天
現在用年(yy)的時間間隔來顯示這一年的第一天。
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
季度的第一天
假如你要計算這個季度的第一天,這個例子告訴你該如何做。
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
⑸ sql日期計算間隔多少天
取出期間的每一天(DATEDIFF),判斷下是2月(DATEPART)就加1,OK?
⑹ 在Sql語句中怎樣計算出兩個日期的差值
sql語句中計算兩個日期的差值用datediff函數。
工具:sqlserver 2008 R2
步驟:
1、計算2009-06-23與2009-06-17之間的天數。語句如下:
selectdatediff(d,'2009-06-17','2009-06-23')
2、查詢結果:
⑺ 請教一個關於SQL日期計算的問題!
首先要把表單提交過來的日期轉換成一個日期字串,如:
dateStr=request("date")
dateStr=left(dateStr,4) & "/" & right(dateStr,4)
dateStr=left(dateStr,7) & "/" & right(dateStr,2)
然後把sql語句改成:
sql="select *,datediff(yyyy,R_birthday,#" & dateStr & "#) from table_R"
日期的兩邊要用#號表示日期.
⑻ 求sql 時間的計算方法
DATEADD 函數 [日期和時間]
--------------------------------------------------------------------------------
作用
返回通過將若干日期部分添加到日期中而產生的日期。
語法
DATEADD ( date-part, numeric-expression, date-expression )
date-part :
year | quarter | month | week | day | hour | minute | second | millisecond
參數
date-part 要添加到日期中的日期部分。
numeric-expression 要添加到日期中的日期部分的數值。numeric_expression 可以是任意數字類型,但它們的值將被截斷成整數。
date-expression 要修改的日期。
示例
下面的語句返回值:1995-11-02 00:00:00.0。
SELECT dateadd( month, 102, '1987/05/02' ) 標准和兼容性
⑼ 利用SQL語句如何獲得兩個日期之間相差的天數
用sysdate假設結束日期欄位是end_date
添加這個判斷條件:
where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判斷年相同
and to_char("end_date",'MM') = to_char(sysdate,'MM') 判斷月相同
and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判斷日相同
或者:
where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15
(9)sql日期計算擴展閱讀:
注意事項
DATEDIFF返回跨兩個指定日期的日期和時間邊界數。
語法:DATEDIFF ( datepart , startdate , enddate )
參數:datepart
是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。
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 年。