Feature #16005
openA variation of Time.iso8601 that can parse yyyy-MM-dd HH:mm:ss
Description
Let me propose a String to Time conversion method that can parse "yyyy-MM-dd HH:mm:ss" format, which is very much similar to Time.iso8601
, but delimits the date part and the time part with a space character.
This format is defined as the "timestamp string" literal in SQL 92 standard: http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt (see P. 90)
and so this format is very widely used as the default datetime / timestamp literal for major existing RDBMS implementations.
PostgreSQL
https://www.postgresql.org/docs/11/datatype-datetime.html#id-1.5.7.13.19.7.2
MySQL
https://dev.mysql.com/doc/refman/8.0/en/datetime.html
SQLite3
https://www.sqlite.org/lang_datefunc.html
In order to handle this conversion in Ruby on Rails framework, we define our own String => Time conversion method
https://github.com/rails/rails/blob/b4c715fe/activemodel/lib/active_model/type/helpers/time_value.rb#L62-L76
and Time => String conversion for now,
https://github.com/rails/rails/blob/b4c715fe/activesupport/lib/active_support/core_ext/time/conversions.rb#L7-L59
and I think it's nicer if we had them in the language level with a faster implementation.
As for the method name, maybe we can name it Time.sql92
, Time.sql
, Time.parse_sql92
or whatever, or maybe we can add an option to Time.iso8601
if it could be regarded as a variation of Time.iso8601
? (https://en.wikipedia.org/wiki/ISO_8601#cite_note-30)