Commit 9b5f3080 authored by amakhov's avatar amakhov

Add hour to DATE_ADD and DATE_SUB

parent 2a7f59c1
......@@ -939,6 +939,36 @@ abstract class AbstractPlatform
throw DBALException::notSupported(__METHOD__);
}
/**
* Returns the SQL to add the number of given hours to a date.
*
* @param string $date
* @param integer $hours
*
* @return string
*
* @throws \Doctrine\DBAL\DBALException If not supported on this platform.
*/
public function getDateAddHourExpression($date, $hours)
{
throw DBALException::notSupported(__METHOD__);
}
/**
* Returns the SQL to subtract the number of given hours to a date.
*
* @param string $date
* @param integer $hours
*
* @return string
*
* @throws \Doctrine\DBAL\DBALException If not supported on this platform.
*/
public function getDateSubHourExpression($date, $hours)
{
throw DBALException::notSupported(__METHOD__);
}
/**
* Returns the SQL to add the number of given days to a date.
*
......
......@@ -65,6 +65,22 @@ class DrizzlePlatform extends AbstractPlatform
return 'DATEDIFF(' . $date1 . ', ' . $date2 . ')';
}
/**
* {@inheritDoc}
*/
public function getDateAddHourExpression($date, $hours)
{
return 'DATE_ADD(' . $date . ', INTERVAL ' . $hours . ' HOUR)';
}
/**
* {@inheritDoc}
*/
public function getDateSubHourExpression($date, $hours)
{
return 'DATE_SUB(' . $date . ', INTERVAL ' . $hours . ' HOUR)';
}
/**
* {@inheritDoc}
*/
......
......@@ -115,6 +115,22 @@ class MySqlPlatform extends AbstractPlatform
return 'DATEDIFF(' . $date1 . ', ' . $date2 . ')';
}
/**
* {@inheritDoc}
*/
public function getDateAddHourExpression($date, $hours)
{
return 'DATE_ADD(' . $date . ', INTERVAL ' . $hours . ' HOUR)';
}
/**
* {@inheritDoc}
*/
public function getDateSubHourExpression($date, $hours)
{
return 'DATE_SUB(' . $date . ', INTERVAL ' . $hours . ' HOUR)';
}
/**
* {@inheritDoc}
*/
......
......@@ -110,6 +110,22 @@ class OraclePlatform extends AbstractPlatform
return "TRUNC(TO_NUMBER(SUBSTR((" . $date1 . "-" . $date2 . "), 1, INSTR(" . $date1 . "-" . $date2 .", ' '))))";
}
/**
* {@inheritDoc}
*/
public function getDateAddHourExpression($date, $hours)
{
return '(' . $date . '+' . $hours . '/24)';
}
/**
* {@inheritDoc}
*/
public function getDateSubHourExpression($date, $hours)
{
return '(' . $date . '-' . $hours . '/24)';
}
/**
* {@inheritDoc}
*/
......
......@@ -100,6 +100,22 @@ class PostgreSqlPlatform extends AbstractPlatform
return '(DATE(' . $date1 . ')-DATE(' . $date2 . '))';
}
/**
* {@inheritDoc}
*/
public function getDateAddHourExpression($date, $hours)
{
return "(" . $date ." + (" . $hours . " || ' hour')::interval)";
}
/**
* {@inheritDoc}
*/
public function getDateSubHourExpression($date, $hours)
{
return "(" . $date ." - (" . $hours . " || ' hour')::interval)";
}
/**
* {@inheritDoc}
*/
......
......@@ -46,6 +46,22 @@ class SQLServerPlatform extends AbstractPlatform
return 'DATEDIFF(day, ' . $date2 . ',' . $date1 . ')';
}
/**
* {@inheritDoc}
*/
public function getDateAddHourExpression($date, $hours)
{
return 'DATEADD(hour, ' . $hours . ', ' . $date . ')';
}
/**
* {@inheritDoc}
*/
public function getDateSubHourExpression($date, $hours)
{
return 'DATEADD(hour, -1 * ' . $hours . ', ' . $date . ')';
}
/**
* {@inheritDoc}
*/
......
......@@ -130,6 +130,22 @@ class SqlitePlatform extends AbstractPlatform
return 'ROUND(JULIANDAY('.$date1 . ')-JULIANDAY('.$date2.'))';
}
/**
* {@inheritDoc}
*/
public function getDateAddHourExpression($date, $hours)
{
return "DATE(" . $date . ",'+". $hours . " hour')";
}
/**
* {@inheritDoc}
*/
public function getDateSubHourExpression($date, $hours)
{
return "DATE(" . $date . ",'-". $hours . " hour')";
}
/**
* {@inheritDoc}
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment