0

状況RFC2822(Sat、01 Dec 2012 05:49:45 +0000)でフォーマットされたタイムスタンプをプルし、MYSQLのVARCHARフィールドに格納しますstart_dateとend_dateがあります。

2つの日付間の目標検索(「2012-11-01」と「2012-12-01」の間のstart_dateなど

条件 これを純粋なSQLで実行し、PHPで後処理を実行したくない

許容できる妥協 はしたくありませんが、必要に応じてPHPを使用して変換してDATETIMEとして保存します。

誰かが私の目標(上記にリストされている)を達成するのを手伝ってくれますか?リック

4

3 に答える 3

2

str_to_date を使用して、文字列の日付を datetime に変換できます。

select str_to_date('Sat, 01 Dec 2012 05:49:45 +0000','%a, %d %b %Y %T')

タイムゾーンも変換する必要がある場合は、これを試してください:

set @datestring='Sat, 01 Dec 2012 05:49:45 +0000';
select
  CONVERT_TZ(
    str_to_date(@datestring,'%a, %d %b %Y %T'),
    concat(mid(@datestring, 27, 3), ':', mid(@datestring, 30, 2)),
    '+00:00'
  )
于 2012-12-20T22:06:19.430 に答える
1

それらをネイティブとして保存しDATETIMEます。これが唯一の健全なアプローチです。

仕事に適切なツールを使用することに反対するのはなぜですか?

于 2012-12-20T21:43:44.010 に答える
0

タイムスタンプを文字列として保存することは、データベース機能を十分に活用できません。それらはすべて同じ形式であるため、入力時に簡単に日時に変換できました。

于 2012-12-20T21:44:26.940 に答える