这是我在StackOverflow上的第一个问题,所以我很抱歉这很可能被错误地格式化了。我是sql语言的新手,遇到以下问题时出现问题:
我有一个声明的表,其中一行选择了一个日期时间(OccurrenceGroupID),并希望在查询结果中显示该日期的短日期格式。
--Select for Occurrence Group
Declare @A3 table (OccurrenceGroupID datetime)
insert into @A3
select OccurrenceGroup as OccurrenceGroup,
Convert(VARCHAR(10),GETDATE(), 101) as [MM/DD/YYYY]
from tblOccurrenceGroup
where occurrencegroupid = @occurrencegroupid
我收到错误消息“列名或提供的值数与表定义不匹配。”
非常感谢任何帮助。 谢谢。
答案 0 :(得分:1)
您的错误是因为您选择了两列并尝试将结果集插入到只有一列的表中。
无论如何,您可能会因为演示原因将datetime
转换为varchar
,然后又希望将其插入datetime
类型的列中,这一列没有多大意义。始终将日期格式保留给客户端应用程序。
答案 1 :(得分:0)
您已将其声明为日期时间
Declare @A3 table (OccurrenceGroupID datetime)
所以它希望你继续说出日期和时间
Convert(VARCHAR(10),GETDATE(), 101) as [MM/DD/YYYY]
然后你说将varchar转换为MM / DD / YYYY因此它与你的第一个陈述相矛盾