J'ai 3 colonnes dans la table TransactionMaster dans le serveur SQL
1) transaction_amount
2) Card_No
3) transaction_date-- datetime
type de données
Donc, je veux récupérer la somme de transaction_amount where Card_No=' 123'
et transaction_date= todays date
. <----- exclure le temps en SQL
Lancez simplement votre horodatage AS DATE
, comme ceci:
SELECT CAST(tstamp AS DATE)
En d'autres termes, votre déclaration ressemblerait à ceci:
SELECT SUM(transaction_amount)
FROM mytable
WHERE Card_No='123'
AND CAST(transaction_date AS DATE) = target_date
Le point positif de CAST
est qu’il fonctionne exactement de la même façon sur la plupart des moteurs SQL (SQL Server, PostgreSQL, MySQL) et qu’il est beaucoup plus facile de se rappeler comment l’utiliser. Les méthodes utilisant CONVERT()
ou TO_DATE()
sont spécifiques à chaque moteur SQL et rendent votre code non portable.
Vous pouvez utiliser
select *
from transaction
where (Card_No='123') and (transaction_date = convert(varchar(10),getdate(),101))
utilisez le suivant
select sum(transaction_amount) from TransactionMaste
where Card_No = '123' and transaction_date = CONVERT(VARCHAR(10),GETDATE(),111)
ou les suivantes
select sum(transaction_amount) from TransactionMaste
where Card_No = '123' and transaction_date = CONVERT(VARCHAR(10), GETDATE(), 120)
Utiliser Getdate()
select sum(transaction_amount) from TransactionMaster
where Card_No=' 123' and transaction_date =convert(varchar(10), getdate(), 102)
Essaye ça:
SELECT SUM(transaction_amount) FROM TransactionMaster WHERE Card_No ='123' AND CONVERT(VARCHAR(10),GETDATE(),111)
La fonction GETDATE()
renvoie le courant date et heure de SQL Server.