sql - 将各种表中的日期存储到 tmp 中的动态查询会产生 NULL
问题描述
故事:
试图从各种表中获取列的最小日期(列名具有相同的名称)。
我想出了如何获取值,但将值存储在 tmp 表中不起作用。
目前只在一张桌子上尝试,看看机制是否有效。
我有的:
create table #t2 (date datetime)
declare @date datetime, @sql nvarchar(max);
begin
set @sql = 'SELECT MAX(insert_stamp) FROM game_install'+';'
exec sp_executesql @sql, N'@x datetime out', @date out
insert into #t2 SELECT @date
end
select * from #t2
结果是:
+-------------------------+
| (No column name) |
+-------------------------+
| 2019-07-24 04:16:06.000 |
+-------------------------+
+------+
| date |
+------+
| NULL |
+------+
为什么表格中没有填充日期结果?
解决方案
您需要分配变量,即@x =
在选择中
也是列出要插入的列的最佳实践。
create table #t2 (date datetime)
declare @date datetime, @sql nvarchar(max);
begin
set @sql = 'SELECT @x = MAX(created) FROM proposal'+';'
exec sp_executesql @sql, N'@x datetime out', @date out
insert into #t2(date) SELECT @date
end
-- But you can also do it in one statement
begin
set @sql = 'insert into #t2 (date) SELECT MAX(created) FROM proposal'+';'
exec sp_executesql @sql, N'@date datetime out', @date out
end
select * from #t2
drop table #t2
给出:
date
2019-11-28 19:40:00.000
2019-11-28 19:40:00.000
推荐阅读
- html - 相对定位的元素不占用其子元素的高度
- python - 向 tesseract 添加四个额外的特殊 unicode 字符
- android - 从 SettingsActivity 返回时如何维护 MainActivity UI 和状态
- php - 如何根据第一个 html 下拉选择自动选择由 mysql pdo fetch 填充的第二个下拉选项/类别
- database - 用于处理大量用户的聊天应用程序的数据库架构
- html - 背景图像在移动设备中不缩放
- android - 如何诊断 Google Play 上的 APK 的“无法安装”?
- c# - 删除返回错误 405(不允许方法) 我正在使用 React 和 ASP.net。我没有大多数人说要编辑的网络配置文件,所以我迷路了
- facebook - Facebook Page Feed Webhook 在测试中工作,但不是在现场
- c# - 我无法更新/编辑与 Entity Framework Core 的一对一关系