【发布时间】:2016-10-03 16:07:58
【问题描述】:
对于一个 web 应用程序,我创建了以下视图:
alter view [dbo].[vwBookingData]
as
select concat(rtrim(ltrim(str(datepart(year, bookingdata.booking_datetime)))), '-', rtrim(ltrim(str(datepart(week, bookingdata.booking_datetime))))) as WeekNumber,
bookingdata.booking_customerCode as ClientCode, customer.Name as ClientName, concat(bookingdata.booking_provider, concat('-', bookingdata.booking_system)) as ProviderCombo,
bookingdata.segments_carrierCode as CarrierCode, bookingdata.booking_datetime as BookingDate, bookingdata.booking_bookingId, flgConfirmed, flgFailed
from dbo.flights_bookingdata bookingdata
inner join dbo.Customer on Customer.Number = bookingdata.booking_customerCode
我的问题是所用查询的 1 个特定部分:
datepart(week, bookingdata.booking_datetime)
我注意到 datepart() 似乎需要一周的时间从星期日而不是星期一开始,这破坏了视图应该生成的概述。
有没有办法可以在查询本身中解决这个问题?
【问题讨论】:
-
阅读DATEPART (Transact-SQL),尤其是
week and weekday datepart Arguments部分。 -
我在问我的问题之前做过。但是我怎么能确定 DATEFIRST 总是有正确的价值呢? µ
-
对于希望与服务器默认开始日期不同的每个查询,您必须在顶部
set datefirst 1;。
标签: sql sql-server sql-server-2008 azure-sql-database