Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support time function #236

Closed
60 tasks done
siddontang opened this issue Sep 23, 2015 · 15 comments
Closed
60 tasks done

support time function #236

siddontang opened this issue Sep 23, 2015 · 15 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.

Comments

@siddontang
Copy link
Member

siddontang commented Sep 23, 2015

http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

  • ADDDATE() Add time values (intervals) to a date value
  • ADDTIME() Add time
  • CONVERT_TZ() Convert from one timezone to another
  • CURDATE() Return the current date
  • CURRENT_DATE(), CURRENT_DATE Synonyms for CURDATE()
  • CURRENT_TIME(), CURRENT_TIME Synonyms for CURTIME()
  • CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP Synonyms for NOW()
  • CURTIME() Return the current time
  • DATE_ADD() Add time values (intervals) to a date value
  • DATE_FORMAT() Format date as specified
  • DATE_SUB() Subtract a time value (interval) from a date
  • DATE() Extract the date part of a date or datetime expression
  • DATEDIFF() Subtract two dates
  • DAY() Synonym for DAYOFMONTH()
  • DAYNAME() Return the name of the weekday
  • DAYOFMONTH() Return the day of the month (0-31)
  • DAYOFWEEK() Return the weekday index of the argument
  • DAYOFYEAR() Return the day of the year (1-366)
  • EXTRACT() Extract part of a date
  • FROM_DAYS() Convert a day number to a date
  • FROM_UNIXTIME() Format UNIX timestamp as a date
  • GET_FORMAT() Return a date format string
  • HOUR() Extract the hour
  • LAST_DAY Return the last day of the month for the argument
  • LOCALTIME(), LOCALTIME Synonym for NOW()
  • LOCALTIMESTAMP, LOCALTIMESTAMP() Synonym for NOW()
  • MAKEDATE() Create a date from the year and day of year
  • MAKETIME() Create time from hour, minute, second
  • MICROSECOND() Return the microseconds from argument
  • MINUTE() Return the minute from the argument
  • MONTH() Return the month from the date passed
  • MONTHNAME() Return the name of the month
  • NOW() Return the current date and time
  • PERIOD_ADD() Add a period to a year-month
  • PERIOD_DIFF() Return the number of months between periods
  • QUARTER() Return the quarter from a date argument
  • SEC_TO_TIME() Converts seconds to 'HH:MM:SS' format
  • SECOND() Return the second (0-59)
  • STR_TO_DATE() Convert a string to a date
  • SUBDATE() Synonym for DATE_SUB() when invoked with three arguments
  • SUBTIME() Subtract times
  • SYSDATE() Return the time at which the function executes
  • TIME_FORMAT() Format as time
  • TIME_TO_SEC() Return the argument converted to seconds
  • TIME() Extract the time portion of the expression passed
  • TIMEDIFF() Subtract time
  • TIMESTAMP() With a single argument, this function returns the date or datetime expression; with two arguments, the sum of the arguments
  • TIMESTAMPADD() Add an interval to a datetime expression
  • TIMESTAMPDIFF() Subtract an interval from a datetime expression
  • TO_DAYS() Return the date argument converted to days
  • TO_SECONDS() Return the date or datetime argument converted to seconds since Year 0
  • UNIX_TIMESTAMP() Return a UNIX timestamp
  • UTC_DATE() Return the current UTC date
  • UTC_TIME() Return the current UTC time
  • UTC_TIMESTAMP() Return the current UTC date and time
  • WEEK() Return the week number
  • WEEKDAY() Return the weekday index
  • WEEKOFYEAR() Return the calendar week of the date (1-53)
  • YEAR() Return the year
  • YEARWEEK() Return the year and week
@c4pt0r c4pt0r added help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. easy and removed easy labels Sep 23, 2015
@hhkbp2
Copy link
Contributor

hhkbp2 commented Dec 16, 2015

Is there any test code which could be used to test these time functions? If someone adds support for a time funtion, how to make sure the newly added function is working?

@hhkbp2
Copy link
Contributor

hhkbp2 commented Dec 16, 2015

@ngaut The tests for mysql would be some good reference. I'm looking for some test codes like unit tests in TiDB to test these time functions, so that newly added time functions could be tested before submitted to the main branch.

@shenli
Copy link
Member

shenli commented Dec 16, 2015

@hhkbp2 You can refer to https://github.com/pingcap/tidb/tree/master/expression/builtin/time_test.go
For time builtin functions, the implementations are in time.go and unit tests are in time_test.go.

overvenus added a commit to overvenus/tidb that referenced this issue Apr 4, 2016
shenli pushed a commit that referenced this issue Apr 5, 2016
* evaluator, parser: support UTC_DATE()

Fix issue: #236.
@shlomi-noach
Copy link

shlomi-noach commented Jan 1, 2017

May I suggest that unix_timestamp() is a critical function that should be supported, especially in light of from_unixtime() already being implemented.

The current lack of both unix_timestamp() and tiemstampdiff() makes it very difficult to do timestamp comparisons.

@tiancaiamao
Copy link
Contributor

This is a good suggestion and we'll support it soon.
Thanks for feedback. @shlomi-noach

@shenli
Copy link
Member

shenli commented Jan 5, 2017

@shlomi-noach unix_timestamp() is already supported. Please try the latest master.

@shlomi-noach
Copy link

@shenli thank you -- unix_timestamp() works!

@kaiwu
Copy link

kaiwu commented Feb 3, 2017

omnidb can be handy, but it fails to login tidb because it executes a SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP()) right after authentication and function utc_timestamp() is not supported yet, expect tidb to improve and benefit the eco

@shenli
Copy link
Member

shenli commented Feb 3, 2017

@kaiwu Thanks for your feedback!
@zyguan Would you mind add utc_timestamp() for TiDB?

@zyguan
Copy link
Contributor

zyguan commented Feb 4, 2017

@shenli Not at all, I will do it later.

@shenli
Copy link
Member

shenli commented Feb 4, 2017

@zyguan Great!

@ngaut
Copy link
Member

ngaut commented Feb 5, 2017

@kaiwu UTC_TIMESTAMP has been supported by the latest master, please try it. Thanks.

@kaiwu
Copy link

kaiwu commented Feb 6, 2017

@ngaut yes, i confirm the fix 395a9c6 solves the issue raised earlier, omnidb client can login to Tidb and function UTC_TIMESTAMP works just fine, THANKS guys !

@zz-jason
Copy link
Member

zz-jason commented Sep 9, 2017

already supported

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
Projects
None yet
Development

No branches or pull requests

10 participants