默认情况下,Sybase IQ 中的周从星期日开始。可以通过以下方式更改此设置:
--set start of week to be on Monday
SET OPTION date_first_day_of_week =1;
当我尝试检查此选项是否已设置时,我会:
SELECT DOW( '2015/01/05')
-- 2
这应该返回 1。
所以我尝试这个:
SELECT DOW( '2015/01/05')
FROM stringer_bell.vials
WHERE ID = 111111111111111111;
-- 1
这给出了正确的答案,看来这个日期函数需要一个 from 语句才能返回正确的值。在选择中单独使用日历函数对于存储过程可能很有用。
为什么会出现这种情况?
--编辑1
有人指出该选项是
first_day_of_week
而不是 Sybase IQ 12 选项名称 date_first_day_of_week
。但是,当使用正确的选项 na 时,我仍然会出现这种行为。我用 SQL Workbench/J 测试了这个
*注意:根据您的评分方式,还可以使用其他引擎/模式,例如行级版本控制(RLV 又名 TLV(事务)),它可以让您避免表级锁定并获得更接近 OLTP 的功能,也许还有其他引擎/模式。
请注意
SAP IQ 的官方文档,这样您就可以避免登陆 SQL Anywhere 结果(Google 似乎总是向我发送该结果)。 还了解 WATCOM 与 TSQL 之间的差异(不同的 IF/THEN 语法)