Select 语句中带子串函数的 Where 子句

Where clause in the Select statement with substring function

我在 Azure SQL 数据库中有一个 table,如下所示

我需要知道今天是星期几,然后与 OrderDay 字段进行比较。我在想我可以在 where 子句

中做类似下面的事情
   SUBSTRING(DATENAME(weekday,GETDATE()), 0, 4) 

我在 select

中添加它时出现问题

虽然我今天 运行 它仍然在 CST 时区,但它仍然是星期一,Azure 数据库位于美国东部,但它会在星期二返回。

Azure SQL Database always follows UTC time zone.

使用AT TIME ZONE将其转换为CST或另一个非UTC时区。

使用以下语法使用 AT TIME ZONE

获取 CST 时区的日期信息

SUBSTRING(DATENAME(weekday,getdate() AT TIME ZONE 'UTC' AT TIME ZONE 'Central Standard Time'), 0, 4)

You can also refer sys.time_zone_info view to check current utc offset information.

select * from sys.time_zone_info