2017-07-10 19 views

答えて

3

日付差を取得したい場合は、あなたがstr_to_date()を使用して文字列を日付に変換した後to_days()を使用することができます。

select to_days(curdate()) - to_days(str_to_date(col, '%d%m%y')) 

datediff()を:

select datediff(curdate(), str_to_date(col, '%d%m%y')) 

またはtimestampdiff()

select timestampdiff(day, str_to_date(col, '%d%m%y'), curdate()) 
+0

FUNCTIONといいます。dbname.string_to_dateは存在しません。 –

+0

かなり確かに 'str_to_date'ではない' string_to_date'です。 – Jhecht

+0

これは非常に速く修正されました。 –

3

これにはSTR_TO_DATE()という機能を使用できます。

select 
    foo.bar 
from 
    foo 
where 
    STR_TO_DATE(foo.baz, '%d%m%y') < CURDATE() 

注:

STR_TO_DATE('151216', '%d%m%y') 

クエリは次のようになります両方STR_TO_DATE()CURDATE()返却日のオブジェクトので、日付の実際の表示形式を変更する理由はありません。この関数では、フォーマットするだけです。あなたのクエリでそれを表示したい場合は、差額を取得するには

DATE_FORMAT(STR_TO_DATE(foo.baz, '%d%m%y'), '%Y-%m-%d') 

のようなものを使用することができ、あなたが唯一の違いを持っ​​ている行を選択したい場合、我々は単に時間

select 
    to_days(CURDATE() - STR_TO_DATE(foo.baz, '%d%m%y')) as diff 
from 
    foo 

を引くことができます指定された量の、to_days(...)ビット全体をwhere句に入れることができます。

+0

それが機能dbname.string_to_dateが –

+0

@ZahidulHosseinRipon存在しないと言う:エラーのために私の謝罪:フムを... 'STR_TO_DATE()' – Jacobm001

+0

@ZahidulHosseinRiponを試してみてください。 – Jacobm001

0
SELECT STR_TO_DATE('151216', '%d%m%y') FROM `table` 

使用この '%dの%のm個の%のY'

関連する問題