web-dev-qa-db-ja.com

SQL Server 2008でintを日付に変換する方法

私はMS SQL Server 2008を使用しており、表には日付としてidate列がありますが、整数形式です。しかし、クエリでは、日付形式で必要です。整数の日付を適切な日時形式に変換することは可能ですか?

11
Vikrant More

整数値を直接日付に変換することはできませんが、最初に日付時刻に変換してから日付型に変換することはできます

select cast(40835 as datetime)

日付に変換します(SQL 2008)

select cast(cast(40835 as datetime) as date)

乾杯

19
davey

最初に日付時刻に変換してから、日付に変換する必要があります。

これを試してください、それは役に立つかもしれません:

Select Convert(DATETIME, LEFT(20130101, 8))

その後、日付に変換します。

3
Nikhil Gutha

ほとんどの場合、T-SQLのCASTおよびCONVERT関数のドキュメントを調べる必要があります。次のドキュメントにあります。 http:// msdn .Microsoft.com/en-US/library/ms187928(v = SQL.90).aspx

次に、T-SQLクエリでこれらの関数のいずれかを使用して、データベースの[idate]列を出力の好みの日時形式に変換します。

1
qxotk

あなたの整数がミリ秒単位のタイムスタンプである場合:

SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name

ミリ秒をyyyy-mm-dd文字列にフォーマットします。

0
Vitaliy A

これを読むと、同様の問題を解決するのに役立ちます。データは10進数データ型です-[DOB] [decimal](8、0)NOT NULL-例-19700109。月に取得したいです。解決策は、SUBSTRINGとCONVERT to VARCHARを組み合わせることです。

    SELECT [NUM]
       ,SUBSTRING(CONVERT(VARCHAR, DOB),5,2) AS mob
    FROM [Dbname].[dbo].[Tablename]