2016-09-25 11 views
-4

画像:http://i.stack.imgur.com/CyyHo.jpgタイムスタンプをSQLで日付に変換するには?

私は画像に示すようにデータセットを持っています。 created_dateカラムの値をdatetimeフォーマットとして使用したいと思います。どうやってやるの?

+2

Clarify画像がデータベース内のデータであるか、.NETデータセット/ DataTableのデータである場合。 created_dateという列に定義されているデータ型を指定できますか –

答えて

0

列の値はタイムスタンプのようではありません。 以下のスクリプトを使用して、値をdatetimeとして作成します。

SELECT credits,amount,city, 
        CONVERT(DATETIME,LEFT(created_date,8) 
        +' '+SUBSTRING(created_date,9,2) 
        +':'+SUBSTRING(created_date,11,2) 
        +':'+RIGHT(created_date,2)) Created_Date 
    FROM YourTable 
+0

私の問題を解決しました。ありがとう。 –

+0

@Abhinavハッピーコーディング! –

0

「エポック」タイプのcreated_dateですか?そして、SQLデータベース内またはビジネスロジック内でdatetime形式を使用しようとしていますか?それがビジネスロジックにある場合は、使用する言語によって異なります。私は助けたいと思っていますが、ユースケースを完全には理解していません。私たちがあなたを助けるのに役立つより多くの情報を提供できるならば!

乾杯!

2

変換する時刻は、Unix timestampと呼ばれ、1970/01/01からの経過秒数を表します。この場合、DATA関数を使用する必要があります。合計秒数が1970/01/01に加算されます。

は、SQLで、それは次のように行われます:s秒とdateTimeInSecondsある

select DATEADD(s, dateTimeInSeconds, '19700101') 

は日付のあなたの値です。 '19700101'が出発点です。

+0

デリミタなしの日付時刻ではありませんか? – scsimon

0

これはunixタイムスタンプのようには見えませんが、一部の文字を含まないdatetimeです(ちょうど数字が残っています)。 MySQLでは、 "リアル" タイムスタンプの使用を取得するには

:UNIX_TIMESTAMP()

MySQLでの日時の使用に "本物" のタイムスタンプを変換するには:FROM_UNIXTIME()

日時使用するように列を変換するには:

CONCAT(SUBSTR(created_date, 1, 4), 
     '-', 
     SUBSTR(created_date, 5, 2), 
     '-', 
     SUBSTR(created_date, 6, 2), 
     ' ', 
     SUBSTR(created_date, 7, 2), 
     ':', 
     SUBSTR(created_date, 11, 2), 
     ':', 
     SUBSTR(created_date, 13, 2)) 
+0

質問はMySQLサーバーではなくSQLサーバーとタグ付けされました – scsimon

1

これを試してみてください:

SELECT 
    create_date, 
    CONVERT(DATETIME, STUFF(STUFF(STUFF(x.create_date, 13, 0, ':'), 11, 0, ':'), 9, 0, ' ')) AS create_date_AsDT 
FROM (SELECT '20160925151849') AS x(create_date) 

Demo - online

注:基本的には、とhhとmmの間のセパレータをmmとssの間に挿入し、DTとTMの間に(スペース(1))を挿入します。したがって、'20160925151849''20160925 15:18:49'になります。この最終値は有効なDT文字列であり、VARCHARからDATETIMEまで(SET LANGUAGE/DATEFORMATの設定とは独立して)問題なく変換できます。

関連する問題