add more extraction types to all databases
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / SQLMaker / MSSQL.pm
CommitLineData
84ddb3da 1package # Hide from PAUSE
d5dedbd6 2 DBIx::Class::SQLMaker::MSSQL;
84ddb3da 3
d5dedbd6 4use base qw( DBIx::Class::SQLMaker );
84ddb3da 5
6#
7# MSSQL does not support ... OVER() ... RNO limits
8#
9sub _rno_default_order {
10 return \ '(SELECT(1))';
11}
12
d42d4906 13{
14 my %part_map = (
37256abd 15 year => 'year',
16 quarter => 'quarter',
17 month => 'month',
18 day_of_year => 'dayofyear',
19 day_of_month => 'day',
20 week => 'week',
21 day_of_week => 'weekday',
22 hour => 'hour',
23 minute => 'minute',
24 second => 'second',
25 millisecond => 'millisecond',
d42d4906 26 );
27
2aedbd3d 28 my %diff_part_map = %part_map;
37256abd 29 $diff_part_map{day} = delete $diff_part_map{day_of_year};
30 delete $diff_part_map{day_of_month};
31 delete $diff_part_map{day_of_week};
2aedbd3d 32
d42d4906 33 sub _datetime_sql { "DATEPART('$part_map{$_[1]}', $_[2])" }
2aedbd3d 34 sub _datetime_diff_sql { "DATEDIFF('$diff_part_map{$_[1]}', $_[2], $_[3])" }
d42d4906 35}
36
37
84ddb3da 381;