SQL Server 2005中:smalldatetime的转换为varchar表现不同视图和“正常”的查询
-
21-09-2019 - |
题
我有基本上只是返回从一个表中的所有记录的图,并增加了一个列“isodate”,其被认为是在ISO-格式的日期。
CREATE VIEW [dbo].[v_bedarfe]
AS
SELECT *,convert(varchar(16),datum,20) As isodat FROM bedarfe
GO
在 “基准” -field是SMALLDATETIME。 在isodat查询的结果......“令人惊讶”,所以做出了明确一点,我想这样的:
select top 10 datum,isodat,convert(varchar(16),datum,20) As isodat2 from v_bedarfe
这导致:
和看起来非常错误的。
所以,我认为我在这里有错误的预期或AM“滥用”的东西,但我看不出有什么我可以做错误并希望任何建议,如何重回正轨这里...
由于
迈克尔结果 (希望张贴这时的屏幕截图将显示正确地,预览不显示它)
解决方案
在视图中使用*
是危险的。如果表定义的变化,*
可以使视图映射列错误。降及重新创建无*
视图,看看是否能解决该问题。
P.S。转换20实际上是ODBC规范,yyyy-mm-dd hh:mi:ss(24h)
,请参见 MSDN页。
其他提示
不隶属于 StackOverflow