SQL server --時間日期函數、類型轉換


一、時間日期函數

1、

SET DATEFIRST 1 --設置星期一為第一天
--datepart函數,返回時間日期中的某一個部分
--參數1是指返回哪一個部分,dw表示dayofweek
--參數2是指哪個時間日期里面去返回
--datefirst是系統常量,在使用時需要加上@@
SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
--getdate指在執行時獲取當前系統時間
SELECT GETDATE()--在執行時取當前系統時間


2、

--dateadd 對某一個部分添加或者減去多少時間
--參數1 是對哪一個部分進行添加或減少
--參數3 是在哪一個時間日期上進行增加或減少
--參數2 是增加或減去多少
select DATEADD(YEAR,-2,'2015-11-20')
select DATEADD(MONTH,3,'2015-11-20')
select DATEADD(DAY,5,'2015-11-20')

 

3、

--datediff 算時間差 different 不同的,相差的
--參數1 是指對哪一個部分進行算法
--參數2 是開始的時間日期
--參數3 是結束的日期
select DATEDIFF(YEAR,'2011-1-2','2015-2-2') --年份相差
select DATEDIFF(MONTH,'2011-1-2','2015-2-2')--月份相差(算上中間所有月份)
select DATEDIFF(DAY,'2011-1-2','2015-2-2')--日相差(算上中間所有日)

 

4、計算戀愛的天數
declare @startday varchar(50) --聲明變量時需要添加數據類型,變量名前加@
set @startday = '2008-8-8' --設置變量的值
--getdate是獲取當前系統時間
select DATEDIFF(DAY,@startday,GETDATE()) as 戀愛天數

 

5、

--datepart 返回時間日期的某一個部分
--參數1是返回的哪一個部分
--參數2是以哪個日期作為被計算的日期
select DATEPART(YEAR,'2008-8-8')--返回年
select DATEPART(DY,'2008-8-8')--返回dayofyear 這一年的第幾天
select DATEPART(QQ,'2008-8-8')--返回季度 共四個季度

--day month year 相當於上面的datepart
--返回天,月,年
select DAY('2008-8-8')
select year('2008-8-8')
select month('2008-8-8')

 

6、

--isdate 判斷時間日期格式是否是正確
--返回值為1表示正確
--返回值為0表示錯誤
select ISDATE('2012-2-29')
select ISDATE('2008-80-8')

--sysdatetime 系統精確時間
select SYSDATETIME()
SELECT GETDATE()-- 區別是精確與否

 

 

二、類型轉換函數

--數據類型轉換 cast convert
--cast 先寫被轉換的value + as + 被轉換成的類型
select CAST(1.73 as int)
select CAST(1.73 as varchar(50))
select CAST(1.73333333 as decimal(18,2))
select cast(CAST('1.78' as decimal(18,2)) as int)
select CAST('1.78' as decimal(18,2))
--convert 參數1是需要轉換成為的類型,參數2是需要被轉換的value
select CONVERT(int , '87')
select CONVERT(decimal(18,2) , '87.8787')--在精確后面位數的時候會自動四舍五入
select CONVERT(varchar(50) , 342523.234)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM