0

このタイムスタンプは、文字列としてテーブルに保存されます。テーブルをクエリするときに日時型に変換するにはどうすればよいですか?

例えば:

declare @timestamp as nvarchar
set @timestamp ='20130319092507.000000-000'

私は試してみましconvert(datetime, timestamp, *n*)cast(timestamp as datetime)

4

1 に答える 1

2

私の最初の提案: テーブルを直してください! 日付/時刻の値を文字列として格納するのをやめます。そこから良いことは何も生まれません。たとえば、列に20130231orが含まれている可能性があり、Hallowe'enそれらThis is not a dateを除外する必要があります。固有の検証に加えて、日付操作を実行する機能も失われます。

DECLARE @timestamp VARCHAR(32);
SET @timestamp = '20130319092507.000000-000';

SELECT CONVERT
(
  DATETIME, 
  LEFT(@timestamp, 8) + ' ' 
  + STUFF(STUFF(SUBSTRING(@timestamp,9,6),3,0,':'),6,0,':')
);
于 2013-03-20T21:22:35.880 に答える