我在SQL Server的表TransactionMaster中有3列
1)transaction_amount
2)Card_No
3)transaction_date-- datetime
数据类型
所以,我想获取transaction_amount where Card_No=' 123'
和transaction_date= todays date
的SUM。< -----排除时间IN SQL
答案 0 :(得分:89)
简单地投射您的时间戳AS DATE
,如下所示:
SELECT CAST(tstamp AS DATE)
换句话说,您的陈述将如下所示:
SELECT SUM(transaction_amount)
FROM mytable
WHERE Card_No='123'
AND CAST(transaction_date AS DATE) = target_date
CAST
的好处在于它在大多数SQL引擎(SQL Server,PostgreSQL,MySQL)上的工作方式完全相同,并且更容易记住如何使用它。
使用CONVERT()
或TO_DATE()
的方法特定于每个SQL引擎,并使您的代码不可移植。
答案 1 :(得分:6)
您可以使用
select *
from transaction
where (Card_No='123') and (transaction_date = convert(varchar(10),getdate(),101))
答案 2 :(得分:2)
使用以下
select sum(transaction_amount) from TransactionMaste
where Card_No = '123' and transaction_date = CONVERT(VARCHAR(10),GETDATE(),111)
或以下
select sum(transaction_amount) from TransactionMaste
where Card_No = '123' and transaction_date = CONVERT(VARCHAR(10), GETDATE(), 120)
答案 3 :(得分:2)
使用Getdate()
select sum(transaction_amount) from TransactionMaster
where Card_No=' 123' and transaction_date =convert(varchar(10), getdate(), 102)
答案 4 :(得分:1)
试试这个:
SELECT SUM(transaction_amount) FROM TransactionMaster WHERE Card_No ='123' AND CONVERT(VARCHAR(10),GETDATE(),111)
GETDATE()
函数从SQL Server返回当前日期和时间。