1

私のテーブル名は「情報」です

構造は次のとおりです。

No int,
Name varchar(200),
Date varchar(30)

記録:

No  Name        Date
=====================================
1   A       25/08/2012
2   B       10/08/2012
3   C       11/08/2012
4   D       01/09/2012

私の問題は、2012 年 8 月 25 日から 2012 年 1 月 9 日までの番号、名前、日付が必要なことです。

次のクエリを試しましたが、取得できません。

select No,Name,Date 
from information 
where Date>='25/08/2012' and Date<='01/09/2012'

日付列 (varchar) を datetime に変更したくない

私を助けてください

4

4 に答える 4

1

以下のクエリを使用して、日付列 (varchar) を datetime に変更する必要はありません。

select No,Name,Date from information where CONVERT(date,[DATE],103) >=  CONVERT(date,'25/08/2012',103)  and CONVERT(date,[DATE],103) <=  CONVERT(date,'01/09/2012',103) 
于 2012-09-03T06:26:54.413 に答える
1

varchar を datetime に変換することができます:

SELECT No,Name,Date from information 
WHERE CONVERT(datetime, Date, 103) >= CONVERT(datetime, '25/08/2012', 103) 
AND CONVERT(datetime, Date, 103) <= CONVERT(datetime, '01/09/2012', 103)
于 2012-09-03T06:07:58.403 に答える
1

前に述べたように、列を日時に変換します。個人的には between ステートメントをクリーナーとして使用します。

select No,Name,Date from information where convert(datetime, Date, 103) between convert(datetime, '25/08/2012', 103) and convert(datetime, '01/09/2012', 103)

入力パラメータによっては、事前に日時に変換できる場合があります(実行前に入力された値を確認できます。例;

declare @startdate datetime
declare @enddate datetime

set @startdate = convert(datetime, '25/08/2012', 103)
set @enddate = convert(datetime, '01/09/2012', 103)

select No,Name,Date from information where convert(datetime, Date, 103) between @stardate and @enddate
于 2012-09-03T06:21:02.370 に答える
0

VARCHARデータ型をに変換する必要がありますDate。試す、

SELECT  No, Name, [Date]
FROM    information 
where   CAST([Date] AS Date) BETWEEN CAST('2012-08-25' AS DATE) AND  
                                     CAST('2012-09-09' AS DATE)
于 2012-09-03T06:17:55.713 に答える