0

テーブルに文字列形式starttimeと次endtime(HH:MM tt)ような 形式の2つの列が あり、SQLクエリのwhere句に条件を追加して、開始時間が終了時間より大きいかどうかを確認しStarttime = 12:15PMたいendtime = 12:52PM

以下のように。

Select * from table where StartTime > EndTime

(ここではこの条件を比較することはできません)

時間を比較するために書き込み場所を追加するのを手伝ってくれる人はいますか。

注: 両方の値は文字列形式で格納されます。

4

5 に答える 5

1

比較を行う前にstring値をキャストする必要があります。Time

Select * from table where CAST(StartTime As Time) > CAST(EndTime As Time)

ただし、最善の解決策は、StartTimeおよびEndTime列のデータ型をデータ型に変更するTimeことです。string

于 2013-04-04T07:31:21.380 に答える
1

これを試して。

SELECT * FROM table WHERE CONVERT (TIME, StartTime) > CONVERT (TIME, EndTime)

SQL 2005 の場合:

SELECT * FROM table WHERE CONVERT(Varchar(8), CONVERT(DATETIME, StartTime), 8) > CONVERT(Varchar(8), CONVERT(DATETIME, EndTime), 8)
于 2013-04-04T09:14:05.187 に答える
1

文字列値をタイムスタンプまたは日時形式に変換してから、where 条件を使用します。

--編集済み

SQL サーバーの場合、

Select * from table where CONVERT(datetime, StartTime , 120) > CONVERT(datetime, EndTime , 120)
于 2013-04-04T07:29:44.790 に答える
0

これを試して

Select * from table where CAST(starttime AS TIME) > CAST(endtime AS TIME)

また

これを試して

 Select * from table where CAST( '2013/01/01 ' + starttime AS DATETIME) > CAST( '2013/01/01 ' + Endtime AS DATETIME)
于 2013-04-04T07:31:25.180 に答える
0

あなたはCASTそれをする必要がありますTIME

Select * from tbl where CAST(StartTime as TIME) > CAST(EndTime as TIME)

ライブデモ

于 2013-04-04T07:32:52.890 に答える