2

Access に、文字列列と日付列を含むテーブルがあります。今月を除いて、日付が 22.10.2010 より前のときに、テーブルからすべての行を取得したいと考えています。だから、私は30.09.2010から...までの行が必要です

私は何かを結びましたが、それは正しくないことがわかりました:

SELECT name FROM table WHERE YEAR(date)<=2010 AND MONTH(date)<10

しかし、この解決策は良くありません。他に考えがありません。一般的な解決策を教えてください。ありがとう

4

6 に答える 6

1

アクセス?

年、月、および「1」(の月の最初の日を取得するためdate)をつなぎ合わせて、それをに変換しDateます。

SELECT  *
FROM    MyTable
WHERE   dateColumn 
           < CDate(CStr(YEAR(date)) + "-" + CStr(MONTH(date)) + "-1")

SQL

問題の日付から(マイナス1)を減算してDAY、月の最初の日付を取得します。次に、この値よりも小さいすべての行を返します。

DECLARE @date DATE
SET @date = GETDATE()DECLARE

SELECT  *
FROM    MyTable
WHERE   dateColumn 
           < DATEADD(DAY, -( DATEPART(DAY, @date) - 1 ), @date)
于 2010-10-22T12:54:46.467 に答える
1

月の 0 日目は前月の最終日です。

DateSerial(Year(Date()),Month(Date()),0)

したがって:

 SELECT [name] FROM [table] 
 WHERE [date]<=DateSerial(Year(Date()),Month(Date()),0)
于 2010-10-22T13:06:34.620 に答える
1

SELECT name FROM table WHERE ( YEAR(date)<2010 ) OR ( YEAR(date)=2010 AND MONTH(date)<10 )

于 2010-10-22T13:10:31.693 に答える
0
SELECT you_col
  FROM YourTable
 WHERE your_date 
          < DATEADD('M', 
              DATEDIFF('M', #1990-01-01 00:00:00#, NOW()
          ), #1990-01-01 00:00:00#);
于 2010-10-22T14:21:28.810 に答える
0

その月のこれまでの日数を減算し、その日付を比較に使用します

Select myName FROM myTable Where myTable.myDate <=DateAdd("d",-Day(Now()),Now());

上記のクエリは、先月の最終日の終わりまでのすべてのレコードを提供します。

乾杯。

于 2010-10-22T13:32:30.490 に答える