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