首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server是否未将日期和时间值写入数据库?

SQL Server是否未将日期和时间值写入数据库?
EN

Stack Overflow用户
提问于 2020-02-09 18:46:13
回答 1查看 60关注 0票数 0

我目前有一个批处理文件,我正在尝试让它在运行时将日期、时间和用户名写入SQL Server数据库。不幸的是,日期和时间在SQL Server数据库中显示为空,因为用户名已正确写入数据库。

正在运行的批处理文件如下所示:

代码语言:javascript
复制
<!-- :
Color 0A
@echo off
Set SearchDate = %Date%
Set UserSearchName = %UserName%
Set SearchTime = %Time%

sqlcmd -S LAPTOP\MSSQLSERVER02 -d AuditLog -E -Q " EXEC dbo.AuditLogCustomerIDTest4 '%SearchDate%', '%UserName%','%SearchTime%' "

从批处理文件(dbo.AuditLogCustomerIDTest4)中引用的SQL子过程如下所示:

代码语言:javascript
复制
CREATE PROCEDURE dbo.AuditLogCustomerIDTest4
@SearchDate nvarchar (30) = Null,
@UserSearchName nvarchar (30) = Null,
@SearchTime nvarchar (30) = Null
AS
Insert Into UserSearches ([SearchDate],[UserSearchName],[SearchTime])
Values ((@SearchDate),(@UserSearchName),(@SearchTime));

每个变量的数据类型为:

代码语言:javascript
复制
1. UserSearchName(varchar(255),null)
2. SearchDate(varchar(255),null)
3. SearchTime(varchar(255),null)

有人知道为什么日期和时间值在SQL Server数据库中显示为空白吗?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-09 20:12:48

我摆了一张和你的桌子一样的桌子,它也不能工作。UserName之所以会出现在表中,是因为您使用的是%UserName%而不是%UserSearchName%,所以它没有使用您创建的变量。我打开了profiler,您设置的值不会传递到存储过程中。因为变量没有值。去掉等号前后的空格,它就会起作用。

代码语言:javascript
复制
<!-- :
Color 0A
@echo off
Set SearchDate=%Date%
Set UserSearchName=%UserName%
Set SearchTime=%Time%

sqlcmd -S LAPTOP\MSSQLSERVER02 -d AuditLog -E -Q " EXEC dbo.AuditLogCustomerIDTest4 '%SearchDate%', '%UserSearchName%','%SearchTime%' "
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60135787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档