私はここに現在の日付を使用してデータベースからレコードを取得しようとしていますが、私はテーブルからレコードが取得していないBUしようとしたクエリです:今日(現在)の日付でデータを表示するSQLクエリですか?
SELECT *
FROM Transactions
WHERE transaction_date = GETDATE();
私はここに現在の日付を使用してデータベースからレコードを取得しようとしていますが、私はテーブルからレコードが取得していないBUしようとしたクエリです:今日(現在)の日付でデータを表示するSQLクエリですか?
SELECT *
FROM Transactions
WHERE transaction_date = GETDATE();
だけで比較します日付部分
Select *from Transactions
WHERE
CONVERT(char(10), transaction_date ,126)=CONVERT(char(10), getdate(),126);
** DATETIMEを** DATEに変換するのは*文字列に変換するのではなく、 **最も適切な**データ型 - それは簡単で働きやすいので、すべてを文字列に変換するだけではありません。 –
ストアクエリ内の変数に日付とCONCATそれを
は以下を参照:
var currentDate = DateTime.Now.ToString("yyyy-MM-dd");
query = "select * from table where Date = " + currentDate;
"yyy-MM-dd"の近くに構文エラーが表示されます –
、これは今日のために比較を行うことができます。
select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
あなたは、今日の日付の開始と変数を定義し、このように終了することができます:
declare @TodayStart datetime = getdate()
declare @TodayEnd datetime = getdate()
set @TodayStart = DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) -- example: 2017-08-20 00:00:00.000
set @TodayEnd = DATEADD(ss, -1, DATEADD(dd, 1, @TodayStart)) -- example: 2017-08-20 23:59:59.000
だから、今日の日付の範囲内のすべての取引を得るためにあなたのクエリになるでしょう:
Select *from Transactions
WHERE transaction_date between @TodayStart AND @TodayEnd
ただの日付ではなく時間的なものでもあります。私は日付+時間に正確な取引があるとは思わない。日時ではなく日付部分だけを比較してみてください –
このクエリを変更するにはどうすればよいですか? –