b9a572c996f10d97848391c634e59609e1527eb6
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / SQLMaker / MSSQL.pm
1 package # Hide from PAUSE
2   DBIx::Class::SQLMaker::MSSQL;
3
4 use base qw( DBIx::Class::SQLMaker );
5
6 #
7 # MSSQL does not support ... OVER() ... RNO limits
8 #
9 sub _rno_default_order {
10   return \ '(SELECT(1))';
11 }
12
13 {
14   my %part_map = (
15      month        => 'mm',
16      day_of_month => 'dd',
17      year         => 'yyyy',
18   );
19
20   my %diff_part_map = %part_map;
21   $diff_part_map{day} = delete $diff_part_map{day_of_month};
22
23   sub _datetime_sql { "DATEPART('$part_map{$_[1]}', $_[2])" }
24   sub _datetime_diff_sql { "DATEDIFF('$diff_part_map{$_[1]}', $_[2], $_[3])" }
25 }
26
27
28 1;