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の時間を除く
次のように、タイムスタンプ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エンジンに固有であり、コードを移植不可にします。
使用できます
select *
from transaction
where (Card_No='123') and (transaction_date = convert(varchar(10),getdate(),101))
以下を使用してください
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)
Getdate()
を使用
select sum(transaction_amount) from TransactionMaster
where Card_No=' 123' and transaction_date =convert(varchar(10), getdate(), 102)
これを試して:
SELECT SUM(transaction_amount) FROM TransactionMaster WHERE Card_No ='123' AND CONVERT(VARCHAR(10),GETDATE(),111)
GETDATE()
関数は、SQL Serverから現在の日付と時刻を返します。