一部のデータを移動していますが、現在日時フィールドにある日付をvarchar MM/yy形式の別のデータベースフィールドに変換するためのTSQLステートメントを作成する必要があります。
このステートメントは、SQLServer2k5とSQLCompactEdition 3.5の両方で機能する必要があります。したがって、回答は「設定」ベースであり、SQLCEでサポートされていないカーソルなどは含まれない必要があります。
一部のデータを移動していますが、現在日時フィールドにある日付をvarchar MM/yy形式の別のデータベースフィールドに変換するためのTSQLステートメントを作成する必要があります。
このステートメントは、SQLServer2k5とSQLCompactEdition 3.5の両方で機能する必要があります。したがって、回答は「設定」ベースであり、SQLCEでサポートされていないカーソルなどは含まれない必要があります。
タイプに依存する、つまり "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 )
正確には必要なものではありませんが、簡単に変更できるはずです。
DECLARE @ddate datetime
set @ddate = getdate()
SELECT CAST(DATEPART(month, @ddate) as varchar(2)) + '/' + CAST(DATEPART(year, @ddate) as varchar(4))
このようなものはどうですか...
select substring(convert(varchar(8),yourdatefield,3),4,5) as newdate
from yourtable
したがって、たとえば、
select substring(convert(varchar(8),getdate(),3),4,5)
「02/09」を与えます。
DATEPART()関数のBooksOnlineドキュメントを確認してください。
http://msdn.microsoft.com/en-us/library/ms187928.aspx
タイプ3に変換し、最後の3文字をトリミングします。