SQL数据更新查询
我有一个SQL数据表,其中日期以日期格式存储在一列中,即yyyy-mm-dd。我已使用bigint创建了一个新列,并希望编写一个查询以将日期转换为bigint并更新我的新列。我尝试使用CAST并收到一条消息,无法将date显式转换为bigint。有人能帮我把日期(yyyy-mm-dd)转换成bigint的SQL公式吗?我不确定您使用的是哪个品牌的SQL server,但在Microsoft SQL server上,您可以使用convert函数来实现这一点 (编辑)根据评论中的信息添加了一个示例。我仍然假设您正在使用SQL server: 如果表中有一个名为“IssueDate”的datetime列和一个名为IssueDateOAD的新bigint列,则可以运行以下查询:SQL数据更新查询,sql,Sql,我有一个SQL数据表,其中日期以日期格式存储在一列中,即yyyy-mm-dd。我已使用bigint创建了一个新列,并希望编写一个查询以将日期转换为bigint并更新我的新列。我尝试使用CAST并收到一条消息,无法将date显式转换为bigint。有人能帮我把日期(yyyy-mm-dd)转换成bigint的SQL公式吗?我不确定您使用的是哪个品牌的SQL server,但在Microsoft SQL server上,您可以使用convert函数来实现这一点 (编辑)根据评论中的信息添加了一个示例。
updatemytable set IssueDateOAD=convert(bigint,IssueDate)+2
如果IssueDate是包含日期格式字符串的varchar列,则必须首先将其转换为日期。对于yyyy-mm-dd,您可以使用convert(datetime,IssueDate,126)
(有关可以传递到convert的样式代码,请参阅文档,126表示我们传递的是ISO8601格式的日期)
包含从varchar到datetime转换的查询为:
updatemytable set IssueDateOAD=convert(bigint,convert(datetime,IssueDate,126))+2
我不确定您使用的是哪个品牌的SQL server,但在Microsoft SQL server上,您可以使用convert函数来实现这一点
(编辑)根据评论中的信息添加了一个示例。我仍然假设您正在使用SQL server:
如果表中有一个名为“IssueDate”的datetime列和一个名为IssueDateOAD的新bigint列,则可以运行以下查询:
updatemytable set IssueDateOAD=convert(bigint,IssueDate)+2
如果IssueDate是包含日期格式字符串的varchar列,则必须首先将其转换为日期。对于yyyy-mm-dd,您可以使用convert(datetime,IssueDate,126)
(有关可以传递到convert的样式代码,请参阅文档,126表示我们传递的是ISO8601格式的日期)
包含从varchar到datetime转换的查询为:
updatemytable set IssueDateOAD=convert(bigint,convert(datetime,IssueDate,126))+2
您希望的数字目标格式是什么?类似于yyyymmdd
或其他什么?可能是unix时间戳?请更新您的问题。您期望的数字目标格式是什么?类似于yyyymmdd
或其他什么?可能是unix时间戳?请更新您的问题。抱歉,我忘记添加我要转换为OADate格式的内容。我尝试过转换,但运气不太好,有没有示例SQL server在1900-01-01 00:00开始,OAdate在1899-12-30 00:00开始,所以选择CONVERT(bigint,getdate())-2应该可以?加2,而不是减。注意到编辑我自己的评论太晚了。我将convert(bigint,expression,getdate())放在-2,但它仍然给出与上面相同的消息抱歉,我忘记添加我要转换为OADate格式的内容。我尝试过转换,但运气不太好,有没有示例SQL server在1900-01-01 00:00开始,OAdate在1899-12-30 00:00开始,所以选择CONVERT(bigint,getdate())-2应该可以?加2,而不是减。注意到现在编辑我自己的评论已经太晚了。我把convert(bigint,expression,getdate())放在-2,但它仍然给出与上面相同的消息