在sql中将hh/mm/ss添加到日期
在下面的查询中,我想在日期中添加hh/mm/ss。我想在日期中添加00:00:00和23:59:59。请帮助我完成此操作在sql中将hh/mm/ss添加到日期,sql,sql-server,Sql,Sql Server,在下面的查询中,我想在日期中添加hh/mm/ss。我想在日期中添加00:00:00和23:59:59。请帮助我完成此操作 @i_StartDate VARCHAR(50) SELECT Distinct p.ProductID, p.ProductName, ISNULL((SELECT top 1 ISNULL( CurrentStock,0.00) FROM Productstatus PS WHER
@i_StartDate VARCHAR(50)
SELECT Distinct p.ProductID,
p.ProductName,
ISNULL((SELECT top 1 ISNULL( CurrentStock,0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND PS.StatusDateTime>= @i_StartDate+'00:00:00' AND PS.StatusDateTime<= @i_StartDate+'23:59:59'
and PS.productid=p.productid),0) OpeningStockQuantity
from Product p
转换为Datetime会对您有所帮助
SELECT Distinct p.ProductID,
p.ProductName,
ISNULL((SELECT top 1 ISNULL( CurrentStock,0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND PS.StatusDateTime>= convert(datetime,@i_StartDate+' 00:00:00') AND PS.StatusDateTime<= convert(datetime,@i_StartDate+' 23:59:59')
and PS.productid=p.productid),0) OpeningStockQuantity
from Product p
在日期中添加时间并强制转换为日期时间
SELECT Distinct p.ProductID,
p.ProductName,
ISNULL((SELECT top 1 ISNULL( CurrentStock,0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND
CAST(PS.StatusDateTime as DATETIME)>=
CAST(DATEADD(day, DATEDIFF(day, 0,@i_StartDate), '00:00:00') as DATETIME) AND
CAST(PS.StatusDateTime as DATETIME)<=
CAST(DATEADD(day, DATEDIFF(day, 0,@i_StartDate), '23:59:59') as DATETIME) AND
PS.productid=p.productid),0) OpeningStockQuantity
from Product p
->假设您使用的是SQL 2008+,只需将StatusDateTime转换为Date并与@i_StartDate进行比较即可
DECLARE @i_StartDate date = '2014-11-01'
SELECT DISTINCT
p.ProductID,
p.ProductName,
ISNULL((SELECT top 1 ISNULL(CurrentStock,0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND CAST(PS.StatusDateTime AS DATE) = @i_StartDate
AND PS.productid=p.productid),0) OpeningStockQuantity
FROM Product p
为什么PS.StatusDateTime=@i_StartDate其中@i_StartDate='2014-11-01'?接受的格式将取决于您的安装。PS.StatusDateTime是什么数据类型和格式?
DECLARE @i_StartDate date = '2014-11-01'
SELECT DISTINCT
p.ProductID,
p.ProductName,
ISNULL((SELECT top 1 ISNULL(CurrentStock,0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND CAST(PS.StatusDateTime AS DATE) = @i_StartDate
AND PS.productid=p.productid),0) OpeningStockQuantity
FROM Product p