我在 sqlAlchemy 中有这段代码:
result = session.query(FXHoliday).where(
and_(
FXHoliday.country_region_code == country,
func.DATE(FXHoliday.event_date) == when.date()
)
).all()
现在这个函数像魅力一样工作,但在 sqlserver :( ...
上面的函数翻译成
SELECT [FX_HOLIDAY].countryorregion AS [FX_HOLIDAY_countryorregion],
[FX_HOLIDAY].holidayname AS [FX_HOLIDAY_holidayname],
[FX_HOLIDAY].normalizeholidayname AS [FX_HOLIDAY_normalizeholidayname],
[FX_HOLIDAY].ispaidtimeoff AS [FX_HOLIDAY_ispaidtimeoff],
[FX_HOLIDAY].countryregioncode AS [FX_HOLIDAY_countryregioncode],
[FX_HOLIDAY].date AS [FX_HOLIDAY_date]
FROM [FX_HOLIDAY]
WHERE [FX_HOLIDAY].countryregioncode = ?
AND
DATE([FX_HOLIDAY].date) = ?
这是正确的,但是 sqlserver 中没有 DATE()。我可以解决制作日期列 varchar 的问题,以便我可以使用:
FXHoliday.event_date == when.strftime("%Y-%m-%d")
但这确实是一个丑陋的解决方案。我想知道是否一些开发人员找到了更好、更优雅的解决方案....