[ https://issues.apache.org/jira/browse/PHOENIX-2433?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
maghamravikiran updated PHOENIX-2433: ------------------------------------- Attachment: PHOENIX-2433-firstdrop.patch [~James Taylor] , Two approaches come to my mind. 1. Joda Time: I have patch that uses this library providing us with the necessary functionality . Its simple and just works like a charm. 2. Write the logic ourselves. I initially started off with this approach and to find out the result for FLOOR('date','WEEK') , the following code needs to be applied . Definitely this will change with CEIL and ROUND . {code} Date dateUpserted = new Date(); long divBy = 24 * 60 * 60 * 1000; long millis = dateUpserted.getTime(); millis = millis + 3 * divBy; millis = millis / (7 * divBy); millis = millis * 7 * divBy; millis = millis - (3 * divBy); Date flooredDate = new Date(millis); {code} Is it ok with the first approach or should we stick with the second ? I prefer the former as its simpler and handles all corner cases well. All the tests in RoundFloorCeilFunctionsEnd2EndIT pass with the patch attached. > support additional time units (like week/month/year) in Trunc() round() and > Ceil() > ----------------------------------------------------------------------------------- > > Key: PHOENIX-2433 > URL: https://issues.apache.org/jira/browse/PHOENIX-2433 > Project: Phoenix > Issue Type: Improvement > Reporter: noam bulvik > Assignee: maghamravikiran > Labels: newbie > Attachments: PHOENIX-2433-firstdrop.patch > > > currently the time units that are supported in trunk(), round(), ceil are > day/hour/minute/seconds/milliseconds. > It should support also other values like week, month, year > You can see how it is documented for Oracle in > http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions201.htm and > different supported level in > http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions230.htm#i1002084 -- This message was sent by Atlassian JIRA (v6.3.4#6332)