Как получить DATE из столбца DATETIME в SQL?
У меня есть 3 столбца в Table TransactionMaster на сервере sql
1) transaction_amount
2) Card_No
3) transaction_date-- datetime
тип данных
Итак, я хочу получить SUM из transaction_amount where Card_No=' 123'
и transaction_date= todays date
. < ----- исключая время IN SQL
Ответы
Ответ 1
Просто введите свою временную метку 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 и делают ваш код не переносимым.
Ответ 2
Вы можете использовать
select *
from transaction
where (Card_No='123') and (transaction_date = convert(varchar(10),getdate(),101))
Ответ 3
используйте следующие
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)
Ответ 4
Используйте Getdate()
select sum(transaction_amount) from TransactionMaster
where Card_No=' 123' and transaction_date =convert(varchar(10), getdate(), 102)
Ответ 5
Попробуйте следующее:
SELECT SUM(transaction_amount) FROM TransactionMaster WHERE Card_No ='123' AND CONVERT(VARCHAR(10),GETDATE(),111)
Функция GETDATE()
возвращает текущую дату и время из SQL Server.