[英]How can I select with a datetime WHERE clause in SQL Server?
如果我需要 select 小于日期时间,我会这样做:
SELECT StackerReplacedEventID, Occured
FROM StackerReplacedEvent
WHERE Occured<CONVERT(DATETIME, 'Jul 11 2011 03:50PM', 120)
但我得到一个错误。 我也试过这种方式:
WHERE Occured<'Jul 11 2011 03:50PM'
使用 ISO 日期格式而不是区域和/或特定语言的日期格式。
WHERE Occured < '2011-07-11T15:50:00';
现在我们知道语言设置是俄语(经过 15 次尝试),也许我们可以在这里做一些蛮力工作。
WHERE Occured < CONVERT(DATETIME,
REPLACE(N'Jul 11 2011 03:50PM', N'Jul', N'июл'), 100)
请注意,N 个前缀很重要!
所以实际上,由于您将拥有代表所有 12 个月的数据,它可能类似于:
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
original_column,N'Jan', N'янв')
,N'Feb', N'фев')
,N'Mar', N'мар')
,N'Apr', N'апр')
,N'May', N'май')
,N'Jun', N'июн')
,N'Jul', N'июл')
,N'Aug', N'авг')
,N'Sep', N'сен')
,N'Oct', N'окт')
,N'Nov', N'ноя')
,N'Dec', N'дек')
不过,这很糟糕。 请考虑为此数据选择正确的数据类型。
现在你明白为什么理解你使用的语言而不是“有帮助地”翻译错误信息很重要吗?
CONVERT(DATETIME, 'Jul 11 2011 03:50PM')
它对我有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.