2

DateField(DataType : Float) を含むテーブルがあります

41477.637634537、
41477.6376233333、
41477.637631794

datetime YY:MM:DD HH:MM:SS 形式でこれが必要です

ALTER関数を試しました

ALTER TABLE HISTORY
    ALTER COLUMN DATETIMESTAMP DATETIME

が、時間は合っていますが、帰る日が一日先です。

私はそれから使いたい

Select * from History
    where Tag LIKE '%tagname%' AND DateTimeStamp > '2013/7/24 14:23:00'

私の Alter ステートメントで何かが間違っているかどうか、またはこれを行うためのより良い方法があるかどうかを提案してください。

4

1 に答える 1

2

Excelの日付を使用しているようです。これらは「1900 年 1 月 0 日」(別名 1899-12-31)から数えています。

その日付に値を追加することで、それらを変換できます。

select cast('1899-12-31' as datetime) + 41477.637634537;

組み込みの変換が 1 ずつずれてしまう理由がわかりません。

編集:

SQL Server 2008 では、以下は 3 つの日付と時刻を返します。

with t as (
      select 41477.637634537 as col union all
      select 41477.6376233333 union all
      select 41477.637631794
     )
select cast('1899-12-31' as datetime) + col
from t;
于 2013-07-25T02:52:48.400 に答える