"R.Smith" wrote,

> Oops, rereading your message it seems you need only the difference carried 
> over to the next day, not schedule the entire time-slot on the next day, 
> this will work better for that:
>
> WITH DTVals( EndOfToday, NewTimeToday, NewTimeTomorrow ) AS (
>   SELECT
>     datetime( 'now', 'start of day', '+17 hours', 'localtime'),
>     datetime( 'now', '+5.5 hours', 'localtime'),
>     datetime( 'now', '+5.5 hours', '+15.5 hours', 'localtime')
> )
> SELECT
>   CASE WHEN NewTimeToday <= EndOfToday THEN NewTimeToday ELSE 
> NewTimeTomorrow END
> FROM DTVals;
>
>
> (The difference between today 17:00 and tomorrow morning 08:30 is 15.5 
> hours, hence...)

Yes, this one works. Thanks.  You guys are amazing.


> On 2015-07-29 07:29 PM, R.Smith wrote:
>>
>>
>> On 2015-07-29 06:34 PM, jose isaias cabrera wrote:
>>> Greetings!
>>>
>>> I am trying to calculate a date using sqlite date and time functions. 
>>> Perhaps, one of you GURUs can help this poor soul. I have been trying to 
>>> figure it out, but I know I am lack the understanding.  I read the 
>>> documentation for it,
>>>
>>> https://www.sqlite.org/lang_datefunc.html
>>>
>>> but I can not seem to find the way to do this.  The idea is this one, 
>>> there will be an input of hours, which in this case will be 5.5 hours, 
>>> that will be added to the actual time.  For example, if it's 10AM, 
>>> adding 5.5 hours will give 3:30 PM.  This is easy,
>>>
>>> datetime('now','localtime','+5.5 hours')
>>>
>>> the problem happens if it is after 5PM. For example, say it is 2PM, 
>>> adding 5.5 hours to it will give 7:30PM.  What I am trying to do is to 
>>> add the amount of hours over 5PM, which is,
>>>
>>> time('now','localtime','+5.5 hours') - '17:00:00'
>>>
>>> to 8.5 hours to the start of the next day and select that date and time.
>>
>> Finally, an interesting question :)
>>
>> It's easy to do, but you need to think of time in days:
>>
>>
>> WITH DTVals( EndOfToday, NewTimeToday, NewTimeTomorrow ) AS (
>>   SELECT
>>     datetime( 'now', 'localtime', 'start of day', '+17 hours' ),       // 
>> End of Today
>>     datetime( 'now', 'localtime', '+5.5 hours' ),                      // 
>> New time if today
>>     datetime( 'now', 'localtime', 'start of day', '+1 day', '+8.5 hours', 
>> '+5.5 hours' )    // New time if tomorrow
>> )
>> SELECT
>>   CASE WHEN NewTimeToday <= EndOfToday THEN NewTimeToday ELSE 
>> NewTimeTomorrow END
>> FROM DTVals;
>>
>>
>> The whole CTE isn't necessary, it's just to show more clear what is 
>> happening. Once you understand why the  above works, the calculation can 
>> be optimized a lot and made faster.
>> (All those spaces are just for clarity, they may be omitted)
>>
>>
>> Cheers,
>> Ryan
>>
>>
>>>   So, I thought that if I concatenate the result to the with to '+XXX 
>>> hours' it would work.  But, you all probably know the result.  So, here 
>>> is what I have tried last:
>>>
>>> select CASE
>>>    WHEN time('now','localtime','+5.5 hours') > '17:00:00' THEN
>>>      datetime('now','localtime','+1 day','start of day','+8.5 hours','+' 
>>> || time('now','localtime','+5.5 hours') - '17:00:00' || ' hours')
>>>    ELSE
>>>      datetime('now','localtime','+5.5 hours')
>>>    END;
>>>
>>> but I get nothing for result:
>>>
>>> sqlite> select CASE
>>>     ...>   WHEN time('now','localtime','+5.5 hours') > '17:00:00' THEN
>>>     ...>     datetime('now','start of day','+1 day','+8.5 hours','+' || 
>>> time('now
>>> ','+5.5 hours','localtime') - '17:00:00' || ' hours')
>>>     ...>   else
>>>     ...>     datetime('now','localtime','+5.5 hours')
>>>     ...>   END;
>>>
>>>
>>> sqlite>
>>>
>>> Any help would be greatly appreciated.  Thanks.
>>>
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users at mailinglists.sqlite.org
>>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users at mailinglists.sqlite.org
>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users 

Reply via email to