gpt4 book ai didi

c++ 寻找一种安全的方法来处理 Sql Server 数据类型 datetime

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:34 24 4
gpt4 key购买 nike

SqlServer 日期时间数据类型用于保存时间戳,长度为 64 位 - http://msdn.microsoft.com/en-us/library/ms187819.aspx

我正在寻找一种在 C++ 中使用它的合理方法,可能是在 boost 库中?

谢谢。

编辑

我满足于能够执行这两个操作:

  • 以某种人类可读的格式显示时间戳,例如 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它应该是一个 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 端处理这些东西?

您可以编写一个 View ,返回 DBTYPE_DBTIMESTAMP 作为 datetime 或 varchar。您可以定义所需的格式。

Use the cast()- or convert()- Function

要写回值,您可以写一个小函数,也在 sql-server 上。您可以使用以下功能:

Convert(datetime, [value], [format])

关于c++ 寻找一种安全的方法来处理 Sql Server 数据类型 datetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com