Sql 基于日期时间数据类型查询结果
表:订单Sql 基于日期时间数据类型查询结果,sql,sql-server,Sql,Sql Server,表:订单 Column Datatype ------ -------- orderid int orderdate date customerid int 我们需要查询2016年6月的退货订单 我试过了 Select orderid from Orders where orderdate between 2016-06-01 and 2016-06-30 它给出了错误,因为between仅与int一起工作。现在如何实现这一点?您可以使用函数Y
Column Datatype
------ --------
orderid int
orderdate date
customerid int
我们需要查询2016年6月的退货订单
我试过了
Select orderid
from Orders
where orderdate between 2016-06-01 and 2016-06-30
它给出了错误,因为between仅与
int
一起工作。现在如何实现这一点?您可以使用函数YEAR()
从给定日期提取年份,并为月份提取MONTH()
SELECT orderid FROM Orders
WHERE YEAR(orderdate) = 2016 and MONTH(orderdate) = 6
您可以使用函数
YEAR()
从给定日期提取年份,并使用函数MONTH()
提取月份
SELECT orderid FROM Orders
WHERE YEAR(orderdate) = 2016 and MONTH(orderdate) = 6
不能仅使用int
,您也可以将其用于date
列。请尝试以下操作:
SELECT
[orderid]
FROM [Orders]
WHERE [orderdate] BETWEEN '2016-06-01' AND '2016-06-30'
或者您可以使用年
和月
功能:
SELECT
[orderid]
FROM [Orders]
WHERE YEAR([orderdate]) = 2016
AND MONTH([orderdate]) = 6
但是,这种方法可能会导致性能问题,因为没有要使用的索引。仅对int
不起作用,您也可以对日期
列使用它。请尝试以下操作:
SELECT
[orderid]
FROM [Orders]
WHERE [orderdate] BETWEEN '2016-06-01' AND '2016-06-30'
或者您可以使用年
和月
功能:
SELECT
[orderid]
FROM [Orders]
WHERE YEAR([orderdate]) = 2016
AND MONTH([orderdate]) = 6
但是,这种方法可能会导致性能问题,因为没有要使用的索引。我认为您在指定日期范围时缺少了
“
。此外,还需要将orderdate
转换为DATE
。原因是,如果您有类似“2016-06-30 12:34:56”的数据,“2016-06-01”和“2016-06-30”之间的将不会返回记录
Select orderid
from Orders
where CONVERT(DATE, orderdate) between '2016-06-01' and '2016-06-30'
我认为您在指定日期范围时缺少了”
。此外,还需要将orderdate
转换为DATE
。原因是,如果您有类似“2016-06-30 12:34:56”的数据,“2016-06-01”和“2016-06-30”之间的将不会返回记录
Select orderid
from Orders
where CONVERT(DATE, orderdate) between '2016-06-01' and '2016-06-30'
这也应该起作用:
select orderid
from orders
where orderdate >= '2016-06-01'
and orderdate < '2016-07-01'
选择orderid
从命令
其中订单日期>='2016-06-01'
订单日期<'2016-07-01'
这也应该有效:
select orderid
from orders
where orderdate >= '2016-06-01'
and orderdate < '2016-07-01'
选择orderid
从命令
其中订单日期>='2016-06-01'
订单日期<'2016-07-01'
请在日期周围使用单引号
Select orderid
from Orders
where orderdate between '2016-06-01' and '2016-06-30'
请在日期前后使用单引号
Select orderid
from Orders
where orderdate between '2016-06-01' and '2016-06-30'