21

SQL Server でYYYY-MM-DD( ) を日付に変換するにはどうすればよいですか?2012-08-17

この形式がヘルプ ページにリストされていません: http://msdn.microsoft.com/en-us/library/ms187928.aspx

4

5 に答える 5

27

スタイルNo. 111 (日本) が機能するはずです。

SELECT CONVERT(DATETIME, '2012-08-17', 111)

何らかの理由でそれが機能しない場合は、いつでもダッシュを取り除くことができ、完全に信頼できる ISO-8601 形式 ( YYYYMMDD) を使用できます。これは、SQL Serverの任意の言語と日付形式の設定で機能します。

SELECT CAST(REPLACE('2012-08-17', '-', '') AS DATETIME)
于 2012-11-07T20:32:13.133 に答える
6

これはトリックを行います:

SELECT CONVERT(char(10), GetDate(),126)
于 2012-11-07T20:32:44.373 に答える
1

私も似たような状況でした。「where」句で日付範囲を取得するために私ができたことは次のとおりです(marc_sの回答の修正):

where cast(replace(foo.TestDate, '-', '') as datetime) 
      between cast('20110901' as datetime) and
              cast('20510531' as datetime)

それが役立つことを願っています...

于 2014-09-17T19:51:20.307 に答える
0

データ型が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
于 2012-11-08T02:44:21.023 に答える