Automattic\WooCommerce\Admin\API\Reports
TimeInterval::db_datetime_format()
Returns date format to be used as grouping clause in SQL.
Method of the class: TimeInterval{}
No Hooks.
Return
Mixed
.
Usage
$result = TimeInterval::db_datetime_format( $time_interval, $table_name, $date_column_name );
- $time_interval(string) (required)
- Time interval.
- $table_name(string) (required)
- Name of the db table relevant for the date constraint.
- $date_column_name(string)
- Name of the date table column.
Default: 'date_created'
TimeInterval::db_datetime_format() TimeInterval::db datetime format code WC 9.6.0
public static function db_datetime_format( $time_interval, $table_name, $date_column_name = 'date_created' ) { $first_day_of_week = absint( get_option( 'start_of_week' ) ); if ( 1 === $first_day_of_week ) { // Week begins on Monday, ISO 8601. $week_format = "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%x-%v')"; } else { // Week begins on day other than specified by ISO 8601, needs to be in sync with function simple_week_number. $week_format = "CONCAT(YEAR({$table_name}.`{$date_column_name}`), '-', LPAD( FLOOR( ( DAYOFYEAR({$table_name}.`{$date_column_name}`) + ( ( DATE_FORMAT(MAKEDATE(YEAR({$table_name}.`{$date_column_name}`),1), '%w') - $first_day_of_week + 7 ) % 7 ) - 1 ) / 7 ) + 1 , 2, '0'))"; } // Whenever this is changed, double check method time_interval_id to make sure they are in sync. $mysql_date_format_mapping = array( 'hour' => "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%Y-%m-%d %H')", 'day' => "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%Y-%m-%d')", 'week' => $week_format, 'month' => "DATE_FORMAT({$table_name}.`{$date_column_name}`, '%Y-%m')", 'quarter' => "CONCAT(YEAR({$table_name}.`{$date_column_name}`), '-', QUARTER({$table_name}.`{$date_column_name}`))", 'year' => "YEAR({$table_name}.`{$date_column_name}`)", ); return $mysql_date_format_mapping[ $time_interval ]; }