如何从SQL中的DATETIME列获取DATE?

时间:2014-02-03 06:45:54

标签: sql sql-server date datetime

我在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

5 个答案:

答案 0 :(得分:89)

简单地投射您的时间戳AS DATE,如下所示:

SELECT CAST(tstamp AS DATE)

SQLFiddle Demo

换句话说,您的陈述将如下所示:

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返回当前日期和时间