sql - 尝试将 SQL 查询的值分配给变量 SET
问题描述
我正在尝试以 yyyymm 格式获取日期,然后在某些操作中使用该日期。
declare @currdate datetime
set @currdate = (SELECT CONVERT(nvarchar(6), GETDATE(), 112))
错误:
将 nvarchar 数据类型转换为 datetime 数据类型导致值超出范围。
或者如果我在下面使用:
declare @currdate datetime
set @currdate = SELECT FORMAT(GetDate(),'yyyyMM')
我得到与上面相同的错误。
所以我想如果今天的日期是 17-05-2020,我想 202005 作为输出,我想将该输出存储在某个变量中。
解决方案
您已将 var 声明为日期
或者你声明一个 varchar
declare @currdate nvarchar(6)
set @currdate = (SELECT CONVERT(nvarchar(6), GETDATE(), 112))
或@MartinSmith 明确指出
它是字符(6)。它既不是可变长度,也不需要 ASCII 数字之外的任何字符
declare @currdate char(6)
set @currdate = (SELECT CONVERT(nvarchar(6), GETDATE(), 112))
或者你用作日期
declare @currdate datetime
set @currdate GETDATE(),
推荐阅读
- javascript - Javascript/Typescript:你能在列表中查找数值并用字符串替换它们吗?
- python - 应用正则表达式函数时,Pandas 内存不足错误
- python - 如何在opencv中使用阈值获取白色字母
- swift - CoreML - 设备模型训练
- ios - 在 SKSpriteNode 上叠加两个纹理
- mysql - Mysql:无法加入子查询
- node.js - 使用 express 进行反应路由正在处理页面刷新
- objective-c - AFMultipartBodyStream 不支持 scheduleInRunLoop 机制的原因是什么?
- sql - SQL 查询以获取最后 10 个带有回复的主题
- android - 捕获的图像可以保存到图像文件夹,但不能保存到应用程序文件夹