我有一个SQL数据表,其日期以日期格式存储在yyyy-mm-dd列中。我已经用bigint创建了一个新列,并且想要编写一个查询来将日期转换为bigint并更新我的新列。我尝试使用CAST,但收到一条消息,我不能显式地将date转换为bigint。有没有人能帮我弄个SQL公式把date (yyyy-mm-dd)转换成bigint
发布于 2013-04-25 14:10:04
我不确定您使用的是哪种品牌的SQL server,但在Microsoft SQL Server上,您可以使用convert函数来实现这一点。
(编辑)根据注释中的信息添加了一个示例。我仍然假设您使用的是SQL server:
如果您的表有一个名为'IssueDate‘的datetime列和一个名为IssueDateOAD的新bigint列,则可以运行以下查询:
update mytable set IssueDateOAD = convert(bigint, IssueDate) + 2
如果IssueDate是包含日期格式字符串的varchar列,则必须先将其转换为日期。对于yyyy-mm-dd,您可以使用convert(datetime, IssueDate, 126) (有关您可以传递到convert的样式代码,请参阅文档,126表示我们正在传递ISO8601格式的日期)
包含从varchar到datetime的转换的查询为:
update mytable set IssueDateOAD = convert(bigint, convert(datetime, IssueDate, 126)) + 2
https://stackoverflow.com/questions/16207530
复制相似问题