diff -r a4113cc1cb5e lib/galaxy/webapps/reports/controllers/jobs.py
--- a/lib/galaxy/webapps/reports/controllers/jobs.py	Thu Jan 10 14:57:37 2013 -0500
+++ b/lib/galaxy/webapps/reports/controllers/jobs.py	Thu Jan 24 11:35:36 2013 -0600
@@ -236,42 +236,42 @@ class Jobs( BaseUIController ):
                                     month=month, 
                                     jobs=jobs, 
                                     message=message )
     @web.expose
     def per_month_all( self, trans, **kwd ):
         params = util.Params( kwd )
         message = ''
         monitor_email = params.get( 'monitor_email', 'monitor@bx.psu.edu' )
-        q = sa.select( ( sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( model.Job.table.c.create_time ).label( 'date' ),
                          sa.func.sum( sa.case( [( model.User.table.c.email == monitor_email, 1 )], else_=0 ) ).label( 'monitor_jobs' ),
                          sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ),
                        from_obj = [ sa.outerjoin( model.Job.table, model.User.table ) ],
-                       group_by = [ sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year ( model.Job.table.c.create_time ), sa.func.month ( sa.func.date( model.Job.table.c.create_time ) ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         jobs = []
         for row in q.execute():
             jobs.append( ( row.date.strftime( "%Y-%m" ),
                            row.total_jobs - row.monitor_jobs,
                            row.monitor_jobs, 
                            row.total_jobs,
                            row.date.strftime( "%B" ),
                            row.date.strftime( "%Y" ) ) )
         return trans.fill_template( '/webapps/reports/jobs_per_month_all.mako',
                                     jobs=jobs,
                                     message=message )
     @web.expose
     def per_month_in_error( self, trans, **kwd ):
         params = util.Params( kwd )
         message = ''
-        q = sa.select( ( sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( model.Job.table.c.create_time ).label( 'date' ),
                          sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ),
                        whereclause = model.Job.table.c.state == 'error',
                        from_obj = [ model.Job.table ],
-                       group_by = [ sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year ( model.Job.table.c.create_time ), sa.func.month ( sa.func.date( model.Job.table.c.create_time ) ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         jobs = []
         for row in q.execute():
             jobs.append( ( row.date.strftime( "%Y-%m" ), 
                            row.total_jobs,
                            row.date.strftime( "%B" ),
                            row.date.strftime( "%Y" ) ) )
         return trans.fill_template( '/webapps/reports/jobs_per_month_in_error.mako',
@@ -291,24 +291,24 @@ class Jobs( BaseUIController ):
             jobs.append( ( row.user_email, 
                            row.total_jobs ) )
         return trans.fill_template( '/webapps/reports/jobs_per_user.mako', jobs=jobs, message=message )
     @web.expose
     def user_per_month( self, trans, **kwd ):
         params = util.Params( kwd )
         message = ''
         email = util.restore_text( params.get( 'email', '' ) )
-        q = sa.select( ( sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( model.Job.table.c.create_time ).label( 'date' ),
                          sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ),
                        whereclause = sa.and_( model.Job.table.c.session_id == model.GalaxySession.table.c.id,
                                               model.GalaxySession.table.c.user_id == model.User.table.c.id,
                                               model.User.table.c.email == email
                                             ),
                        from_obj = [ sa.join( model.Job.table, model.User.table ) ],
-                       group_by = [ sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year ( model.Job.table.c.create_time ), sa.func.month ( sa.func.date( model.Job.table.c.create_time ) ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         jobs = []
         for row in q.execute():
             jobs.append( ( row.date.strftime( "%Y-%m" ), 
                            row.total_jobs,
                            row.date.strftime( "%B" ),
                            row.date.strftime( "%Y" ) ) )
         return trans.fill_template( '/webapps/reports/jobs_user_per_month.mako',
@@ -331,21 +331,21 @@ class Jobs( BaseUIController ):
                                     jobs=jobs,
                                     message=message )
     @web.expose
     def tool_per_month( self, trans, **kwd ):
         params = util.Params( kwd )
         message = ''
         tool_id = params.get( 'tool_id', 'Add a column1' )
         specified_date = params.get( 'specified_date', datetime.utcnow().strftime( "%Y-%m-%d" ) )
-        q = sa.select( ( sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( model.Job.table.c.create_time ).label( 'date' ),
                          sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ),
                        whereclause = model.Job.table.c.tool_id == tool_id, 
                        from_obj = [ model.Job.table ],
-                       group_by = [ sa.func.date_trunc( 'month', sa.func.date( model.Job.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year ( model.Job.table.c.create_time ), sa.func.month ( sa.func.date( model.Job.table.c.create_time ) ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         jobs = []
         for row in q.execute():
             jobs.append( ( row.date.strftime( "%Y-%m" ), 
                            row.total_jobs,
                            row.date.strftime( "%B" ),
                            row.date.strftime( "%Y" ) ) )
         return trans.fill_template( '/webapps/reports/jobs_tool_per_month.mako',
diff -r a4113cc1cb5e lib/galaxy/webapps/reports/controllers/users.py
--- a/lib/galaxy/webapps/reports/controllers/users.py	Thu Jan 10 14:57:37 2013 -0500
+++ b/lib/galaxy/webapps/reports/controllers/users.py	Thu Jan 24 11:35:36 2013 -0600
@@ -14,20 +14,20 @@ class Users( BaseUIController ):
     @web.expose
     def registered_users( self, trans, **kwd ):
         message = util.restore_text( kwd.get( 'message', '' ) )
         num_users = trans.sa_session.query( galaxy.model.User ).count()
         return trans.fill_template( '/webapps/reports/registered_users.mako', num_users=num_users, message=message )
     @web.expose
     def registered_users_per_month( self, trans, **kwd ):
         message = util.restore_text( kwd.get( 'message', '' ) )
-        q = sa.select( ( sa.func.date_trunc( 'month', sa.func.date( galaxy.model.User.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( galaxy.model.User.table.c.create_time ).label( 'date' ),
                          sa.func.count( galaxy.model.User.table.c.id ).label( 'num_users' ) ),
                        from_obj = [ galaxy.model.User.table ],
-                       group_by = [ sa.func.date_trunc( 'month', sa.func.date( galaxy.model.User.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year ( model.User.table.c.create_time ), sa.func.month ( model.User.table.c.create_time ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         users = []
         for row in q.execute():
             users.append( ( row.date.strftime( "%Y-%m" ), 
                             row.num_users,
                             row.date.strftime( "%B" ),
                             row.date.strftime( "%Y" ) ) )
         return trans.fill_template( '/webapps/reports/registered_users_per_month.mako',
@@ -39,22 +39,22 @@ class Users( BaseUIController ):
         # If specified_date is not received, we'll default to the current month
         specified_date = kwd.get( 'specified_date', datetime.utcnow().strftime( "%Y-%m-%d" ) )
         specified_month = specified_date[ :7 ]
         year, month = map( int, specified_month.split( "-" ) )
         start_date = date( year, month, 1 )
         end_date = start_date + timedelta( days=calendar.monthrange( year, month )[1] )
         month_label = start_date.strftime( "%B" )
         year_label = start_date.strftime( "%Y" )
-        q = sa.select( ( sa.func.date_trunc( 'day', sa.func.date( galaxy.model.User.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( galaxy.model.User.table.c.create_time ).label( 'date' ),
                          sa.func.count( galaxy.model.User.table.c.id ).label( 'num_users' ) ),
                        whereclause = sa.and_( galaxy.model.User.table.c.create_time >= start_date,
                                               galaxy.model.User.table.c.create_time < end_date ),
                        from_obj = [ galaxy.model.User.table ],
-                       group_by = [ sa.func.date_trunc( 'day', sa.func.date( galaxy.model.User.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year ( model.User.table.c.create_time ), sa.func.month ( model.User.table.c.create_time ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         users = []
         for row in q.execute():
             users.append( ( row.date.strftime( "%Y-%m-%d" ),
                             row.date.strftime( "%d" ), 
                             row.num_users, 
                             row.date.strftime( "%A" ) ) )
         return trans.fill_template( '/webapps/reports/registered_users_specified_month.mako', 
@@ -70,17 +70,17 @@ class Users( BaseUIController ):
         specified_date = kwd.get( 'specified_date', datetime.utcnow().strftime( "%Y-%m-%d" ) )
         year, month, day = map( int, specified_date.split( "-" ) )
         start_date = date( year, month, day )
         end_date = start_date + timedelta( days=1 )
         day_of_month = start_date.strftime( "%d" )
         day_label = start_date.strftime( "%A" )
         month_label = start_date.strftime( "%B" )
         year_label = start_date.strftime( "%Y" )
-        q = sa.select( ( sa.func.date_trunc( 'day', sa.func.date( galaxy.model.User.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( galaxy.model.User.table.c.create_time ).label( 'date' ),
                          galaxy.model.User.table.c.email ),
                        whereclause = sa.and_( galaxy.model.User.table.c.create_time >= start_date,
                                               galaxy.model.User.table.c.create_time < end_date ),
                        from_obj = [ galaxy.model.User.table ],
                        order_by = [ galaxy.model.User.table.c.email ] )
         users = []
         for row in q.execute():
             users.append( ( row.email ) )
diff -r a4113cc1cb5e lib/galaxy/webapps/reports/controllers/workflows.py
--- a/lib/galaxy/webapps/reports/controllers/workflows.py	Thu Jan 10 14:57:37 2013 -0500
+++ b/lib/galaxy/webapps/reports/controllers/workflows.py	Thu Jan 24 11:35:36 2013 -0600
@@ -128,19 +128,19 @@ class Workflows( BaseUIController ):
                 return trans.response.send_redirect( web.url_for( controller='workflows',
                                                                   action='user_per_month',
                                                                   **kwd ) )
         return self.specified_date_list_grid( trans, **kwd )
     @web.expose
     def per_month_all( self, trans, **kwd ):
         params = util.Params( kwd )
         message = ''
-        q = sa.select( ( sa.func.date_trunc( 'month', sa.func.date( model.StoredWorkflow.table.c.create_time ) ).label( 'date' ),sa.func.count( model.StoredWorkflow.table.c.id ).label( 'total_workflows' ) ),
+        q = sa.select( ( sa.func.date( model.StoredWorkflow.table.c.create_time ).label( 'date' ),sa.func.count( model.StoredWorkflow.table.c.id ).label( 'total_workflows' ) ),
                        from_obj = [ sa.outerjoin( model.StoredWorkflow.table, model.User.table ) ],
-                       group_by = [ sa.func.date_trunc( 'month', sa.func.date( model.StoredWorkflow.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year( sa.func.date( model.StoredWorkflow.table.c.create_time ) ),  sa.func.month( sa.func.date( model.StoredWorkflow.table.c.create_time ) ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         workflows = []
         for row in q.execute():
             workflows.append( ( row.date.strftime( "%Y-%m" ),
                                 row.total_workflows,
                                 row.date.strftime( "%B" ),
                                 row.date.strftime( "%Y" ) ) )
         return trans.fill_template( '/webapps/reports/workflows_per_month_all.mako',
@@ -161,21 +161,21 @@ class Workflows( BaseUIController ):
                                 row.total_workflows ) )
         return trans.fill_template( '/webapps/reports/workflows_per_user.mako', workflows=workflows, message=message )
     @web.expose
     def user_per_month( self, trans, **kwd ):
         params = util.Params( kwd )
         message = ''
         email = util.restore_text( params.get( 'email', '' ) )
         user_id = trans.security.decode_id( params.get( 'id', '' ) )
-        q = sa.select( ( sa.func.date_trunc( 'month', sa.func.date( model.StoredWorkflow.table.c.create_time ) ).label( 'date' ),
+        q = sa.select( ( sa.func.date( model.StoredWorkflow.table.c.create_time ).label( 'date' ),
                          sa.func.count( model.StoredWorkflow.table.c.id ).label( 'total_workflows' ) ),
                        whereclause = model.StoredWorkflow.table.c.user_id == user_id,
                        from_obj = [ model.StoredWorkflow.table ],
-                       group_by = [ sa.func.date_trunc( 'month', sa.func.date( model.StoredWorkflow.table.c.create_time ) ) ],
+                       group_by = [ sa.func.year( sa.func.date( model.StoredWorkflow.table.c.create_time ) ),  sa.func.month( sa.func.date( model.StoredWorkflow.table.c.create_time ) ) ],
                        order_by = [ sa.desc( 'date' ) ] )
         workflows = []
         for row in q.execute():
             workflows.append( ( row.date.strftime( "%Y-%m" ), 
                                 row.total_workflows,
                                 row.date.strftime( "%B" ),
                                 row.date.strftime( "%Y" ) ) )
         return trans.fill_template( '/webapps/reports/workflows_user_per_month.mako',
