web-dev-qa-db-ja.com

SQLで時間なしで日付を選択する方法

SQLで日付を選択すると、2011-02-25 21:17:33.933として返されます。しかし、Date部分、つまり2011-02-25だけが必要です。これどうやってするの?

227
Neeraj

彼は弦が欲しいと思う

select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
133
bernd_k

SQL Server 2008の場合:

Convert(date, getdate())  

https://docs.Microsoft.com/ja-jp/sql/t-sql/functions/getdate-transact-sql を参照してください。

452
Prad9

最も速いのは datediff です。

select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl

しかし、単に値を使う必要があるのなら、dateaddを飛ばすことができます。

select ...
WHERE somedate <= datediff(d, 0, getdate())

datediff(d, 0, getdate())は今日の日付を時間の部分なしで返すのに十分です。

52
RichardTheKiwi

私のために働いたCAST(日付としてGETDATE())を使ってください。

33
Anna-leny
21
Orbit

あなたはこのように使うことができます

SELECT Convert(varchar(10), GETDATE(),120) 
12
A.Goutam

2008年より古いバージョン

SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)

10
DomCha

あなたもこれを試すことができます。

SELECT CONVERT(DATE, GETDATE(), 120)
2
Ram Pratap

もう少し時間がかかりますが、ODBC "curdate"関数を使用します(山かっこ 'fn'はODBC関数のエスケープシーケンスです)。

SELECT {fn curdate()} 

出力:2013-02-01

2
Stefan Steiger

必要に応じて同じ日付時刻を維持するために、日付に変換した後に日付時刻に変換します

select Convert(datetime, Convert(date, getdate())  )
1
RollRoll

使い方は簡単です。

convert(date, Btch_Time)

以下の例:

表:

Efft_d       Loan_I  Loan_Purp_Type_C   Orig_LTV    Curr_LTV    Schd_LTV    Un_drwn_Bal_a      Btch_Time            Strm_I  Btch_Ins_I
2014-05-31  200312500   HL03             NULL         1.0000    1.0000         1.0000      2014-06-17 11:10:57.330  1005    24851e0a-53983699-14b4-69109


Select * from helios.dbo.CBA_SRD_Loan where Loan_I in ('200312500') and convert(date, Btch_Time) = '2014-06-17'
1
Arvind Kumar

単に日付として日付タイプを返したい場合

CONVERT(date, SYSDATETIME())

または

SELECT CONVERT(date,SYSDATETIME()) 

または

DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())
0
TMP ByKIS

PLSQLではあなたが使用することができます

to_char(SYSDATE,'dd/mm/yyyy')
0
Morterox

時間をゼロにする必要がある場合:

SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 120)

0
Simon Alphonse

日付としてSELECT date( '2011-02-25 21:17:33.933')を指定すると、2011-02-25になります。

私のために働きました。うまくいくことを願っています。

0
Mazhar Ghulam

最初に日付をfloat(数値を表示)に変換し、それから数値を0の小数点にROUNDしてからdatetimeに変換します。

convert(datetime,round(convert(float,orderdate,101),0) ,101)
0
user4162468

これを試して。

SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))
0
Ram Pratap