SQLで日付を選択すると、として返され 2011-02-25 21:17:33.933
ます。しかし、必要なのは日付部分、つまりです2011-02-25
。これどうやってするの?
SQLで日付を選択すると、として返され 2011-02-25 21:17:33.933
ます。しかし、必要なのは日付部分、つまりです2011-02-25
。これどうやってするの?
回答:
私は彼が文字列を望んでいると思います。
select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
ここで120は、私たちが入力日付を渡すことコンバート機能を告げ、次の形式:yyyy-mm-dd hh:mi:ss
。
SQL Server 2008の場合:
Convert(date, getdate())
https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sqlを参照してください
DATE
は2008
date
データ型は、したがって、無効としてこのソリューションをレンダリングします。
簡単に機能するCAST(GETDATE()を日付として使用)を使用します。
CAST(order_date AS DATE)
CAST(
FLOOR(
CAST( GETDATE() AS FLOAT )
)
AS DATETIME
)
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
少し遅いですが、ODBCの「curdate」関数を使用します(角括弧 'fn'はODBC関数のエスケープシーケンスです)。
SELECT {fn curdate()}
出力: 2013-02-01
SELECT {fn curdate()} FROM (SELECT 1) AS T(X)
を実行して実際の実行プラン(xmlバージョン)を確認すると、実際に実行されているものがであることがわかりますCONVERT(varchar(10),getdate(),23)
。したがって、このODBC関数のデータ型はvarchar(10)
、結果をと比較する場合、文字列datetime
からvarchar(10)
への暗黙的な変換を取得することを意味しdatetime
ますyyyy-mm-dd
。その暗黙の変換はで失敗しset dateformat dmy
ます。
時間をゼロにする必要がある場合2018-01-17 00:00:00.000
:
SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 121)
使い方は簡単です:
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'
手遅れですが、フォローはうまくいきました
declare @vCurrentDate date=getutcdate()
select @vCurrentDate
データ型が日付の場合、時間は切り捨てられます
PLSQLで使用できます
to_char(SYSDATE,'dd/mm/yyyy')
最初に日付を浮動小数点数(数値を表示する)にROUND
変換し、次に数値を0の小数点に変換してから、それを日時に変換します。
convert(datetime,round(convert(float,orderdate,101),0) ,101)