[ 
https://issues.apache.org/jira/browse/CALCITE-3412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16952463#comment-16952463
 ] 

Julian Hyde commented on CALCITE-3412:
--------------------------------------

It makes sense to also implement {{DAYOFWEEK(DATE)}}. In {{SqlFunctions}}, add 
a function {{int dayOfWeek(DataContext)}}.

How do we know the first day of the week? It turns out that we have a 
{{TimeZone}} and a {{Locale}} in our {{DataContext}} (based on connection 
properties). With these, we can do {{Calendar.getInstance(timeZone, 
locale).getFirstDayOfWeek()}}.

The implementation of {{FLOOR(... TO WEEK)}} should call {{dayOfWeek(root)}}.

> Response Error for FLOOR TIMESTAMP TO WEEK 
> -------------------------------------------
>
>                 Key: CALCITE-3412
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3412
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>         Environment: mac,linux
>            Reporter: huaicui
>            Priority: Major
>         Attachments: image-2019-10-15-13-33-34-896.png
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> Floor timestamp to week exist error:
> The start day of the week is not Sunday or Monday, calcite use Thursday to 
> split a week.
> Example:
> sql: select FLOOR(CAST('2017-01-28' AS TIMESTAMP) TO WEEK);
> Response:
> 2017-01-26 00:00:00.0
>  
> 2017-01-26 is Tuesday that is not our expect result. As result, 2017-01-22 is 
> the first day that we expect.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to