SQLデータベースの日時関数

GETDATE()を「現在の日付」として選択し、
DateName(年、GetDate())を「年」として選択し、現在の年、月、日などの
日付を取得します。DateName(月、GetDate())を「月」、
DateName(日、GetDate )として選択します。 ())as 'Day'、
DateName(dw、GetDate())as 'week'、
DateName(week、GetDate())as 'week number'、
DateName(hour、GetDate())as 'hour'、
DateName(分、GetDate())を「分」、
DateName(秒、GetDate())を「秒」

演算結果:

2017-08-13 23:07:15.403 2017 08 13木曜日33 23 7 15
-------------------------------- ------
CONVERTを選択(varchar(8)、getdate()、112)AS Expr1
は、現在の年、月、日を表示します。例:20150101

sql server2000 time operation
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.
先月の最終日にdateadd(ms、-3、DATEADD(mm、DATEDIFF(mm、0、getdate())、0))を選択します

4.月の最初の月曜日に
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())およびDATEPART(yy、theDate)= DATEPART(yy、GETDATE())

11.查询本周的记录
select * from tableName where DATEPART(wk、theDate)= DATEPART(wk、GETDATE())およびDATEPART(yy、theDate)= DATEPART(yy、GETDATE())

12.今シーズンのレコードを
選択します。select* from tableName where DATEPART(qq、theDate)= DATEPART(qq、GETDATE())and DATEPART(yy、theDate)= DATEPART(yy、GETDATE())
where GETDATE()が取得されます。システム時間の関数。

13.月の合計日数を取得し
ます。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.現在のシステムの日付と時刻を
選択しますgetdate()

16. dateaddは指定された日付に期間を追加し、新しいdatetime値を返します
例:日付に2日を追加します
select dateadd(day、2、 '2004-10-15')--Return:2004-10 -17 00:00:00.000

17. datediffは、指定された2つの日付にわたる日付と時刻の境界の数を返します。
select datediff(day、 '2004-09-01'、 '2004-09-18')--return:17

18. datepartは、指定された日付の指定された日付部分を表す整数を返します。
SELECT DATEPART(月、 '2004-10-15')-10
年を年、月を月、日を日、時を分、分を分、秒を秒として返します。

19. datenameは、指定された日付の指定された日付部分を表す文字列を返します
SELECT datename(weekday、 '2004-10-15')--return:Friday

20.日()、月()、年()-datepartと比較でき
ます現在の日付を選択=変換(varchar(10)、getdate()、120)、現在の時刻=変換(varchar(8)、getdate( )、114)
日付名を選択(dw、 '2004-10-15')
年間の週数を選択=日付名(週、 '2004-10-15')、今日は曜日=日付名(平日、 '2004-10) -15 ')

-先月の最初の日を最後の日に抽出し
ますselect convert(varchar(100)、dateadd(dd、-day(dateadd(month、-1、getdate()))+1、dateadd(month、-1、 getdate()))、23)
select convert(varchar(100)、dateadd(dd、-day(getdate())、getdate())、23)

 -------------------------------------------


関数パラメーター/関数
GetDate()は、システムの現在の日付と時刻を返します
DateDiff(interval、date1、date2)は、2つの日付date2とdate1の差を、間隔date2-date1
DateAdd(interval、number、date )間隔で指定された方法と、数値の後の日付
DatePart(間隔、日付)は日付の日付を返し、日付の指定された部分
(間隔、日付)に対応する整数値は、日付の間隔の指定された部分に対応する文字を返します文字列名


例: 
1. GetDate()はSQLサーバーに使用されます: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、つまり2005です。

アプリケーション例:

特定の日付の間のレコードデータをクエリし
ます。*開始時刻> '2005-02-01'および終了時刻<= '2005-06-05'のテーブルから*を選択します。


過去30以内のレコードデータをクエリする:
select * from table 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

特定の年(2006など)のレコードデータのクエリ:
select * from table where DatePart(Yy、last_date)= 2006 order by id desc
または
select * from table where DatePart(Year、last_date)= 2006 order by id desc

たとえば、現在の年にシステムによって挿入された1年以内のデータを照会します
。select* from table where DatePart(Yy、getdate())= DatePart(Yy、getdate())order by id desc

システム日付を
取得して日付を分離する現在の日付を選択=変換(varchar(10)、dateadd(日、-1、getdate())、120)、現在の時刻=変換(varchar(8)、getdate()、114)
- --------------------年、月、
年()、月()、日付()を取ります
--------------- -----------
今日の削除は、月の週の
 選択キャスト(datepart(mm、GETDATE())as varchar(2))+ 'monthly'
 + cast((datepart(wk、GETDATE ())-
 datepart(wk、convert(varchar(7)、GETDATE()、120)+ '-01')+ 1)as varchar(2))+ 'week'
---------- ------

 

 

日付変換フォーマット

CONVERT(varchar(100)、GETDATE()、23)を
選択:2017-05-16 CONVERT(varchar(100)、GETDATE()、0)を
選択:05 16 2017 10:57 AM CONVERT(varchar(100)、GETDATEを選択()、1):05/16/17
選択CONVERT(varchar(100)、GETDATE()、2):17.05.16
選択CONVERT(varchar(100)、GETDATE()、3):16/05/17
選択CONVERT(varchar(100)、GETDATE()、4):16.05.17
CONVERT(varchar(100)、GETDATE()、5)を
選択:16-05-17 CONVERT(varchar(100)、GETDATE()、6を選択):16 05 17
CONVERT(varchar(100)、GETDATE()、7)を
選択します:05 16、17 CONVERT(varchar(100)、GETDATE()、8)を
選択します:10:57:46 CONVERT(varchar(100 )、GETDATE()、9):05 16 2017 2017 10:57:46:827AM
Select CONVERT(varchar(100)、GETDATE()、10):05-16-17
CONVERT(varchar(100)、GETDATE()、11)を
選択:17/05/16 CONVERT(varchar(100)、GETDATE()、12)を
選択:170516 CONVERT(varchar(100)、GETDATE()、13)を選択:16 05 2017 10:57:46:937
CONVERT(varchar(100)、GETDATE()、14)を選択:10:57:46:967
CONVERT(varchar(100)、GETDATE()、20)を選択:2017- 05-16 10:57:47
CONVERT(varchar(100)、GETDATE()、21)を
選択:2017-05-16 10:57:47.157 CONVERT(varchar(100)、GETDATE()、22)を選択:05 / 16/17 10:57:47 AM
選択CONVERT(varchar(100)、GETDATE()、23):2017-05-16
選択CONVERT(varchar(100)、GETDATE()、24):10:57:47
選択CONVERT(varchar(100)、GETDATE()、25):2017-05-16 10:57:47.250
CONVERT(varchar(100)、GETDATE()、100)を選択:05 16 2017 10:57 AM
CONVERT(varchar(100)、GETDATE()、101)を
選択:2017年5月16日CONVERT(varchar(100)、GETDATE()、102)を
選択:2017.05.16 CONVERT(varchar(100)、GETDATE()、を選択103):16/05/2017
選択CONVERT(varchar(100)、GETDATE()、104):16.05.2017
選択CONVERT(varchar(100)、GETDATE()、105):16-05-2017

CONVERT(varchar(100)、GETDATE()、106)を
選択:2017年16月5日CONVERT(varchar(100)、GETDATE()、107)を
選択:2017年5月16日CONVERT(varchar(100)、GETDATE()、108を選択):
10:57:49 CONVERT(varchar(100)、GETDATE()、109)を
選択:2017年5月16日10:57:49:437AM CONVERT(varchar(100)、GETDATE()、110)を選択:05-16 -2017
CONVERT(varchar(100)、GETDATE()、111)を
選択:2017/05/16 CONVERT(varchar(100)、GETDATE()、112)を
選択:20170516 CONVERT(varchar(100)、GETDATE()、を選択113):16 05 2017 10:57:49:513
CONVERT(varchar(100)、GETDATE()、114)を選択:10:57:49:547
CONVERT(varchar(100)、GETDATE()、120)を選択: 2017-05-16 10:57:49
選択CONVERT(varchar(100)、GETDATE()、121):2017-05-16 10:57:49.700
CONVERT(varchar(100)、GETDATE()、126)を
選択:2017-05-16T10:57:49.827 CONVERT(varchar(100)、GETDATE()、131)を選択:18/04/1427 10:57:49: 920AM

CONVERT(varchar、getdate()、120)を選択します2017-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar、getdate()、120)、/ '-/'、/ '/')、/ '/'、/ '/')、/ ':/'、/ '/ ')20170912110608
select CONVERT(varchar(12)、getdate()、111)2017/09/12
select CONVERT(varchar(12)、getdate()、112)20170912
select CONVERT(varchar(12)、getdate()、102 )2017.09.12
select CONVERT(varchar(12)、getdate()、101)2017
年9月12日select CONVERT(varchar(12)、getdate()、103)2017年12月9日
select CONVERT(varchar(12)、 getdate()、104)2017年12月9日、
select CONVERT(varchar(12)、getdate()、105)
select CONVERT(varchar(12)、getdate()、106)
select CONVERT(varchar( 12)、getdate()、107)2017年9月12日
select CONVERT(varchar(12)、getdate()、108)11:06:08
select CONVERT(varchar(12)、getdate()、109)09 12 2017 1
select CONVERT(varchar(12)、getdate()、110 )
2017年9月12日select CONVERT(varchar(12)、getdate()、113)12 09 2017 1
select CONVERT(varchar(12)、getdate()、114)11:06:08.177

--------------------------------------------------

----------数値を時間表示に
変更し CAST(dateadd(N、300、 '')as Time)をTime1として選択します。

または
CONVERT(varchar(5)、dateadd(N、300、 '')、8)Time2を選択します

Dateadd(H):H
時間)Dateadd(N):N
分)Dateadd(S):S(秒)

結果300は05:00と表示されますが、同様の状況が一部の出席ルールに表示されます。

--------時間/分の部分を削除
=右(変換(varchar(16)、rq、121)、5)としてrq時刻を10:50として取り出します


 -------年と月の詳細な期間を周期的に挿入します。

declare @ date1 varchar(100)、@ date2 varchar(100)
declare @tmp table 
(date varchar(100))
set @ date1 = '2017'
set @ date2 = '05 '
insert @tmp 
select convert(varchar(10)、 dateadd(DAY、t2.number、t1.day)、120)日 
(select @ date1 + '-' + @ date2 + '-01' day)t1 
(select number from MASTER..spt_values WHERE TYPE = 'P' AND number> = 0 and number <= 31)t2 
where convert(varchar(10)、dateadd(DAY、t2.number、t1.day)、120)like @ date1 + '-' + @ date2 + '%'  

------上記の時刻が当年の数週間に属する時刻を表示し、開始日から終了日までを表示します。

 select datename(week、dateadd(day、-1、date))as week、convert(varchar(10)、min(date)、120)+ '〜' + convert(varchar(10)、max(date)、120 )@tmp
グループからの日として、datename(week、dateadd(day、-1、date))

------時間差(日、時間、分に正確)

宣言@yi varchar(40)、@ chen varchar(40)
set @yi = '2017-01-16 15:28'
set @chen = convert(varchar(16)、getdate()、20)
select cast(floor( datediff(minute、@ yi、@ chen)/ 1440)as varchar)+ N '天' +
       cast(floor((datediff(minute、@ yi、@ chen)%1440)/ 60)as varchar)+ N '小時間'+
       cast(((datediff(minute、@ yi、@ chen))-
        (floor(datediff(minute、@ yi、@ chen)/ 1440)* 1440)- 
        (floor((datediff(minute、@ yi、@ chen)%1440)/ 60)* 60))as varchar)+ N '分' 
      as N '時間间差'

現在の時刻が定義された時刻と異なると結論付けられました

元の記事を22件公開 賞賛7件 100,000回以上の閲覧

おすすめ

転載: blog.csdn.net/qyx0714/article/details/71137970