2017-08-17 1 views
-3

テーブルの値は25-MAY-2012.10.12.320000 PMCreated_timeです。SQLタイムスタンプクエリ

私は、彼らがしている年にとらわれないMarchAprilの月の間に作成されたtable XYZからすべてのフィールドを表示するためのクエリを記述する必要があります。

私はレコードを表示したいと思いますそのIDに基づいて昇順に並べ替えます。

誰かが私を助けることができますか?

+0

列CREATED_TIMEのデータ型は何ですか? – JRG

+0

あなたは何を試しましたか、これは宿題サイトではありません – dbajtr

+0

これはどのRDBMSですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –

答えて

0

月と年の機能をチェックします。 CREATED_TIMEはdatetime型であれば次の場合、

select * 
from XYZ 
where Created_time like '%-MARCH-%' 
order by id; 

または:

select * 
from TABLE 
where month(Created_time) in (3, 4) 
+1

未知のdbmsを使用した質問に対する製品固有の回答... – jarlh

0

あなたはCreated_timeはどんな年3月にあったかどうかを確認する必要がある場合は、そのアイデアは、このような何かを行うことですこれはcolumnのタイプではサポートされていません。varcharに変換してください。また、いくつかのRDBMS特有のfunctionがありますが、より徹底的な回答のためには、使用しているRDBMSとtypeCreated_timeを知る必要があります。 Jarhlで指摘したように

EDIT

は、EXTRACTは月をチェックするために、この場合には使用可能であるべきです。 Source、彼は右であることを証明すると言う:日から部品を抽出するための

名前

EXTRACT

ANSI SQLスカラー関数は EXTRACTです。 ANSI SQL標準構文

ANSI SQL EXTRACT関数は、date_partと、 がdatetime値と評価する式を取ります。 MySQLの、Oracle、およびPostgreSQLサポート ANSI SQL標準構文:

EXTRACT(date_part FROM expression)

+1

コメントによると、Created_timeデータ型はTIMESTAMP(6)です。 – jarlh

+0

@jarlhそれを指摘してくれてありがとう。私は間違っているかもしれませんが、私はOracleのような精度が与えられていると思います。その場合、to_charを使用してテキストデータへの変換を行うことができます。ただし、Oracleにいる場合は、EXTRACTを使用して月を取得することができます。ソース:https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions052.htm#SQLRF00639 –

+1

EXTRACTは、このような場合に使用されるANSI SQL関数です。(ただし、質問に指定されたタイムスタンプはANSI SQLに準拠していないため、dbms OPがどのdbms OPを使用しているかはわかります) – jarlh