1

我有一个 SQL 数据表,其中日期以日期格式存储在一列中,为 yyyy-mm-dd。我用 bigint 创建了一个新列,并想编写一个查询将日期转换为 bigint 并更新我的新列。我尝试使用 CAST 并收到一条消息,指出我无法将日期显式转换为 bigint。有人可以帮助我使用 SQL 公式将日期 (yyyy-mm-dd) 转换为 bigint

4

1 回答 1

1

我不确定您使用的是哪个品牌的 SQL Server,但在 Microsoft SQL Server 上,您可以使用 convert 功能来实现这一点。

(编辑)根据评论中的信息添加了一个示例。我仍然假设您使用的是 SQL 服务器:

如果您的表有一个名为“IssueDate”的日期时间列和一个名为 IssueDateOAD 的新 bigint 列,则可以运行以下查询:

update mytable set IssueDateOAD = convert(bigint, IssueDate) + 2

如果 IssueDate 是一个包含日期格式字符串的 varchar 列,则必须先将其转换为日期。对于 yyyy-mm-dd 您可以使用convert(datetime, IssueDate, 126)(请参阅文档了解您可以传递给转换的样式代码,126 表示我们传递的是 ISO8601 格式的日期)

包括从 varchar 到 datetime 转换的查询是:

update mytable set IssueDateOAD = convert(bigint, convert(datetime, IssueDate, 126)) + 2

于 2013-04-25T06:10:03.787 回答