のSQLServerデータ型のdatetimeで動作するように、それは64ビット長である - http://msdn.microsoft.com/en-us/library/ms187819.aspxC++はSqlServerのdatetimeデータ型は、タイムスタンプを保持するために使用され
私はそれで動作するように健全な方法を探していますおそらくC + +、ブーストライブラリの何か?
ありがとうございました。私はこれらの2つの操作を行うことができることのために解決します
EDIT
:2012-01-15 16:54:13.123
2012-01-15 16:54:13.123
のような文字列を解析
- は、一部の人間が読める形式でタイムスタンプを表示しますそれぞれのSqlServer日時の値。ここでEDIT2
datetime
列のテーブルを持っています。そこから行を選択すると、データ型が
DBTYPE_DBTIMESTAMP
のこの列が返されます。
http://msdn.microsoft.com/en-us/library/ms187819.aspxによると、それは、しかし、私は、例えば、バック16バイトの値を取得し、8バイトの値である必要があります:私はこの形式のいずれかの記述を見つけ、それを調査すると、次の構造を明らかにできなかった
00070015000c07db 00000000001f0007
:
0007 0015 000c 07db 00000000 001f 0007
^ ^^^ ^^
| | | | | |
| | | | | +--- minutes (7)
| | | | +----+--- seconds (31)
| | | +-------------+----+--- year (2011)
| | +----+-------------+----+--- month (12)
| +----+----+-------------+----+--- day (21)
+----+----+----+-------------+----+--- hour (7)
これは2011-12-21 07:07:31
に相当します。だから、これは簡単だと思われますが、ドキュメントはどこにありますか? DBTYPE_DBTIMESTAMP
の値は常にこの形式で報告されますか?それはSqlSever CE固有か、エクスプレスと他の味が同じように動作しますか?ミリ秒を含めることはできますか?
私はOLEDBを使用してデータベースにアクセスしています。
C++を使っているときには「sane way」というものはありません。 – ScarletAmaranth
アップデートを参照してください。 – mark
http://msdn.microsoft.com/en-us/library/bb677303.aspxによるとMS SqlServerには「TimeStamp」データ型がありません。 SqlServerデータ型の 'datetime'ファミリに対応するOLEDB指定' DBTYPE_DBTIMESTAMP'があります。 – mark