如何在SQL sERVER中使用datepart?

时间:2014-01-31 07:22:25

标签: sql-server sas

我需要帮助在SQL服务器中编写这个SAS代码。我有兴趣知道如何在SQL Server中使用datepart。我包含了整个查询,因为它可能有助于理解我在做什么。

如何将包含datepart(用SAS编写)的最后一个where子句重写为SQL server?

    create table step1 as

SELECT a.*,ar.Productid,ar.pricelistid
  FROM AB a
inner join BB ar
    on a.someid = ar.someid

;



create table step2 as

SELECT a.*, ar.price
  FROM step1 a
inner join XX ar
    on a.Productid = ar.Productid
          and a.pricelistid = ar.pricelistid

          where datepart(startdatum)< '01DEC2013'd and
( datepart(enddate) = . or datepart(enddate)>= '01DEC2013'd)

1 个答案:

答案 0 :(得分:2)

SQL Server没有日期类型,只有日期时间。因此没有必要使用任何datepart函数,你可以简单地把'01Dec2013'相当于'01Dec2013 00:00:00'。在sql server中有一个datepart函数,它从日期时间返回一个单位,例如年,月,日。

sql server中的where子句应该类似于:

where 
    startdatum<'01DEC2013' 
    and
    ( enddate is null 
      or 
      enddate>='01DEC2013')