web-dev-qa-db-ja.com

SQLのDATETIME列からDATEを取得する方法は?

SQLサーバーのテーブルTransactionMasterに3つの列があります

1)transaction_amount

2)Card_No

3)transaction_date-- datetimeデータ型

だから、transaction_amount where Card_No=' 123'transaction_date= todays dateのSUMを取得したい。<----- SQLの時間を除く

43
user3239820

次のように、タイムスタンプ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エンジンに固有であり、コードを移植不可にします。

93
mvp

使用できます

select * 
from transaction 
where (Card_No='123') and (transaction_date = convert(varchar(10),getdate(),101))
6
Milan Raval

以下を使用してください

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)
2
Developerzzz

Getdate()を使用

 select sum(transaction_amount) from TransactionMaster
 where Card_No=' 123' and transaction_date =convert(varchar(10), getdate(), 102)
2
Nagaraj S

これを試して:

SELECT SUM(transaction_amount) FROM TransactionMaster WHERE Card_No ='123' AND CONVERT(VARCHAR(10),GETDATE(),111)

GETDATE()関数は、SQL Serverから現在の日付と時刻を返します。

1
Ajay P