如何在SQL Server中选择日期部分

问题描述 投票:0回答:2

我在PostgreSQL此查询:

SELECT * from myTable 
WHERE date(myTimeStampColumn) = '2019-01-01'

由于我切换到SQL,我请使用此:

SELECT * 
FROM myTable 
WHERE (
        SELECT CONVERT(date, myDateTimeColumn)
      ) = '2019-01-01'

或这个:

SELECT * 
FROM myTable 
WHERE date(myDateTimeColumn) > '2019-01-01'
  AND
SELECT * 
FROM myTable 
WHERE date(myDateTimeColumn) < '2019-01-02'

有选择日期时间列在SQLSERVER的日期部分更快/更简单的方法?

sql sql-server
2个回答
1
投票

您可以编写查询如下

select * from myTable where CONVERT(date, myDateTimeColumn) = '2019-01-01'

1
投票

下面的查询就相当于你是在写PostgreSQL

SELECT * FROM MYTABLE WHERE CAST(myTimeStampColumn AS DATE)='2019-01-01'

正如丹·古斯曼认为,上面的查询是不优化搜索,所以不会得到索引的好处。

为了获得更好的性能,你可以写同样的查询关键词,比如以下。

 SELECT * FROM MYTABLE WHERE
 myTimeStampColumn >= '2019-01-01' AND myTimeStampColumn < '2019-01-02'
© www.soinside.com 2019 - 2024. All rights reserved.