簡體   English   中英

尋找一種使用SqlServer數據類型datetime的合理方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM