我在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的日期部分更快/更简单的方法?
您可以编写查询如下
select * from myTable where CONVERT(date, myDateTimeColumn) = '2019-01-01'
下面的查询就相当于你是在写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'