タイトルで述べたように、新しい値を挿入するか、主キーが既に存在する場合は行を更新しますが、データベースの値が指定された新しい値よりも古い場合のみです。
クエリはこのようなものですが、whereステートメントに問題があります
INSERT INTO myTable(field1_key, field2, datefield) VALUES('val1', 'val2', '2012-12-12 12:12:12')
ON DUPLICATE KEY UPDATE
field2='val2'
datefield='2012-12-12 12:12:12'
WHERE datefield <'2012-12-12 12:12:12'