SQL Server でYYYY-MM-DD
( ) を日付に変換するにはどうすればよいですか?2012-08-17
この形式がヘルプ ページにリストされていません: http://msdn.microsoft.com/en-us/library/ms187928.aspx
SQL Server でYYYY-MM-DD
( ) を日付に変換するにはどうすればよいですか?2012-08-17
この形式がヘルプ ページにリストされていません: http://msdn.microsoft.com/en-us/library/ms187928.aspx
スタイルNo. 111 (日本) が機能するはずです。
SELECT CONVERT(DATETIME, '2012-08-17', 111)
何らかの理由でそれが機能しない場合は、いつでもダッシュを取り除くことができ、完全に信頼できる ISO-8601 形式 ( YYYYMMDD
) を使用できます。これは、SQL Serverの任意の言語と日付形式の設定で機能します。
SELECT CAST(REPLACE('2012-08-17', '-', '') AS DATETIME)
これはトリックを行います:
SELECT CONVERT(char(10), GetDate(),126)
私も似たような状況でした。「where」句で日付範囲を取得するために私ができたことは次のとおりです(marc_sの回答の修正):
where cast(replace(foo.TestDate, '-', '') as datetime)
between cast('20110901' as datetime) and
cast('20510531' as datetime)
それが役立つことを願っています...
データ型がtable.colの日時である場合、データベースストアデータには2つの部分が含まれます:1(日付)2(時刻)
表示データでは、変換またはキャストを使用します。
例:
create table #test(part varchar(10),lastTime datetime)
go
insert into #test (part ,lastTime )
values('A','2012-11-05 ')
insert into #test (part ,lastTime )
values('B','2012-11-05 10:30')
go
select * from #test
A 2012-11-05 00:00:00.000
B 2012-11-05 10:30:00.000
select part,CONVERT (varchar,lastTime,111) from #test
A 2012/11/05
B 2012/11/05
select part,CONVERT (varchar(10),lastTime,20) from #test
A 2012-11-05
B 2012-11-05