'YYYY', 'y' => 'YY', 'M' => 'Mon', 'm' => 'MM', // No format for Numeric representation of a month, without leading zeros. 'n' => 'MM', 'F' => 'Month', 'D' => 'Dy', 'd' => 'DD', 'l' => 'Day', // No format for Day of the month without leading zeros. 'j' => 'DD', 'W' => 'IW', 'H' => 'HH24', 'h' => 'HH12', 'i' => 'MI', 's' => 'SS', 'A' => 'AM', ]; /** * Constructs the PostgreSQL-specific date sql class. * * @param \Drupal\Core\Database\Connection $database * The database connection. */ public function __construct(Connection $database) { $this->database = $database; } /** * {@inheritdoc} */ public function getDateField($field, $string_date) { if ($string_date) { // Ensures compatibility with field offset operation below. return "TO_TIMESTAMP($field, 'YYYY-MM-DD HH24:MI:SS')"; } return "TO_TIMESTAMP($field)"; } /** * {@inheritdoc} */ public function getDateFormat($field, $format) { $format = strtr($format, static::$replace); return "TO_CHAR($field, '$format')"; } /** * {@inheritdoc} */ public function setFieldTimezoneOffset(&$field, $offset) { $field = "($field + INTERVAL '$offset SECONDS')"; } /** * {@inheritdoc} */ public function setTimezoneOffset($offset) { $this->database->query("SET TIME ZONE INTERVAL '$offset' HOUR TO MINUTE"); } }