0

MMMDD 形式 (OCT26 など) の nvarchar(5) 列のデータがあります。私の select ステートメントでは、それを現在の年を含む datetime データ型に変換し、その datetime 値を別名、たとえば UsefulDate として保存したいと考えています。10-26-2012 のようなものです。

次のようなもの: SELECT (SQL がジョブを完了させるものは何でも) AS UsefulDate

正確なフォーマットは重要ではありません。大なり演算子と小なり演算子を使用して 2 つの日付を比較できるようにする必要があるだけです。また、列が空白になる場合もあります。その場合、エイリアスも空白に設定したいと思います。これは可能ですか?

ご協力いただきありがとうございます!

4

2 に答える 2

1

MMMDD 形式の varchar フィールドを現在の年の日付に変換するには、次のコマンドを使用します。

select convert(datetime,'OCT26'+','+cast(year(getdate()) as varchar),107)

したがって、クエリは次のようになります。

select convert(datetime,case varcharDate when '' then null else varcharDate end +
               ','+cast(year(getdate()) as varchar),107) as UsefulDate 
from table
于 2012-10-26T10:16:52.020 に答える
0
select CASE WHEN ISDATE(mmmdd+' '+right(year(getdate()),4)) = 1
            THEN CAST(mmmdd+' '+right(year(getdate()),4) as datetime)
            END UsefulDate, *
  from tbl
于 2012-10-26T10:14:40.637 に答える