SQL数据更新查询

时间:2013-04-25 06:06:19

标签: sql

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

1 个答案:

答案 0 :(得分:1)

我不确定您使用的是哪个品牌的SQL服务器,但在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