[英]c++ Looking for a sane way to work with SqlServer data type datetime
SqlServer datetime數據類型用於保存時間戳,它的長度為64位-http: //msdn.microsoft.com/zh-cn/library/ms187819.aspx
我正在尋找一種在C ++中使用它的合理方法,可能是boost庫中的東西?
謝謝。
編輯
我會滿足於能夠執行以下兩個操作:
2012-01-15 16:54:13.123
2012-01-15 16:54:13.123
這樣的字符串解析為相應的SqlServer datetime值。 EDIT2
這是到目前為止我所知道的。 我有一個帶有datetime
列的表。 當我從中選擇行時,將使用DBTYPE_DBTIMESTAMP
的數據類型返回此列。 根據http://msdn.microsoft.com/zh-cn/library/ms187819.aspx,它應該是8字節的值,但是,例如,我取回16字節的值:
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專用還是Express和其他版本是否相同? 可以包含毫秒嗎?
順便說一句,我正在使用OLEDB訪問數據庫。
您為什么不處理sql-server方面的問題?
您可以編寫一個視圖,該視圖為DBTYPE_DBTIMESTAMP提供日期時間或varchar返回。 您可以定義所需的格式。
Use the cast()- or convert()- Function
要寫回值,您可以在sql-server上編寫一個小函數。 您可以使用以下功能:
Convert(datetime, [value], [format])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.