2

一部のデータを移動していますが、現在日時フィールドにある日付をvarchar MM/yy形式の別のデータベースフィールドに変換するためのTSQLステートメントを作成する必要があります。

このステートメントは、SQLServer2k5とSQLCompactEdition 3.5の両方で機能する必要があります。したがって、回答は「設定」ベースであり、SQLCEでサポートされていないカーソルなどは含まれない必要があります。

4

5 に答える 5

2

タイプに依存する、つまり "101" は、mm と dd が入れ替わるため、US 以外のデータベース サーバーで実行する場合に危険です。おそらく、タイプ「3」を使用する場合と同じです。サーバーの言語が常に同じであることがわかっている限り、これらの方法が最も簡単です。

datepart を使用するとおそらくより信頼性が高くなりますが、3/08 の代わりに 03/08 と言いたい場合は、月の前に必ず "0" を付ける必要があります。

select 
    right( '00' + convert(varchar(2), datepart( mm, @ddate)), 2) + '/' +
    right( convert(varchar(4), datepart( yy, @ddate) ), 2 )
于 2009-02-24T00:43:42.353 に答える
1

正確には必要なものではありませんが、簡単に変更できるはずです。

DECLARE @ddate datetime

set @ddate = getdate()

SELECT CAST(DATEPART(month, @ddate) as varchar(2))  + '/' + CAST(DATEPART(year, @ddate) as varchar(4))
于 2009-02-23T23:47:14.767 に答える
1

このようなものはどうですか...

select substring(convert(varchar(8),yourdatefield,3),4,5) as newdate 
from yourtable

したがって、たとえば、

select substring(convert(varchar(8),getdate(),3),4,5)

「02/09」を与えます。

于 2009-02-23T23:52:30.557 に答える
0

DATEPART()関数のBooksOnlineドキュメントを確認してください。

于 2009-02-23T23:44:10.733 に答える
0

http://msdn.microsoft.com/en-us/library/ms187928.aspx

タイプ3に変換し、最後の3文字をトリミングします。

于 2009-02-23T23:48:30.987 に答える