SQLで日付を選択すると、2011-02-25 21:17:33.933
として返されます。しかし、Date部分、つまり2011-02-25
だけが必要です。これどうやってするの?
彼は弦が欲しいと思う
select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
SQL Server 2008の場合:
Convert(date, getdate())
https://docs.Microsoft.com/ja-jp/sql/t-sql/functions/getdate-transact-sql を参照してください。
最も速いのは datediff
です。
select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl
しかし、単に値を使う必要があるのなら、dateaddを飛ばすことができます。
select ...
WHERE somedate <= datediff(d, 0, getdate())
式datediff(d, 0, getdate())
は今日の日付を時間の部分なしで返すのに十分です。
私のために働いたCAST(日付としてGETDATE())を使ってください。
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
あなたはこのように使うことができます
SELECT Convert(varchar(10), GETDATE(),120)
2008年より古いバージョン :
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
あなたもこれを試すことができます。
SELECT CONVERT(DATE, GETDATE(), 120)
もう少し時間がかかりますが、ODBC "curdate"関数を使用します(山かっこ 'fn'はODBC関数のエスケープシーケンスです)。
SELECT {fn curdate()}
出力:2013-02-01
必要に応じて同じ日付時刻を維持するために、日付に変換した後に日付時刻に変換します
select Convert(datetime, Convert(date, getdate()) )
使い方は簡単です。
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'
単に日付として日付タイプを返したい場合
CONVERT(date, SYSDATETIME())
または
SELECT CONVERT(date,SYSDATETIME())
または
DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())
PLSQLではあなたが使用することができます
to_char(SYSDATE,'dd/mm/yyyy')
時間をゼロにする必要がある場合:
SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 120)
日付としてSELECT date( '2011-02-25 21:17:33.933')を指定すると、2011-02-25になります。
私のために働きました。うまくいくことを願っています。
最初に日付をfloat(数値を表示)に変換し、それから数値を0の小数点にROUND
してからdatetimeに変換します。
convert(datetime,round(convert(float,orderdate,101),0) ,101)
これを試して。
SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))