我需要将日期和时间样式从美国格式转换为德语,然后将其转换为int
数据类型。所以对于下面的变量,如果我想在标准 112 (ISO) 中显示它,这个工作正常
DECLARE @LoopDate datetime
SET @LoopDate = '12/23/2015'
SELECT @LoopDate AS Original,
CAST(CONVERT(VARCHAR(8), @LoopDate, 112) AS int) AS int;
但是,当我输入 104 时,应该会出现错误:
将 varchar 值“23.10.2015”转换为数据类型 int 时转换失败。
看起来转换确实有效,但转换int
为无效。
104 格式包含
.
它,这就是它失败的原因,而 112 没有点,因此您可以将其转换为 int。请参阅https://learn.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017注意:将 date 转换为 int 以用于稍后的数学运算并不是一个好主意。