Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我应该使用哪种类型来存储最新的日期?_Ruby On Rails_Database_Datetime_Date_Types - Fatal编程技术网

Ruby on rails 我应该使用哪种类型来存储最新的日期?

Ruby on rails 我应该使用哪种类型来存储最新的日期?,ruby-on-rails,database,datetime,date,types,Ruby On Rails,Database,Datetime,Date,Types,我想在数据库中存储事件的日期,但我不想存储秒或小于秒的信息。使用Rails,在我的迁移中,我可以选择创建一个date列或datetime列,其中第一个列的精度太低,第二个列的精度太高(直到第二个列)。我应该选择哪种类型来存储这样的日期?目前,我正在使用datetime并在每次模型中设置某个日期时手动将秒数设置为固定值(例如0) 大概是这样的: self.date ||= Time.now.change(:sec => 0) 我完全偏离轨道了吗?我应该为日期的每个组成部分使用一个整数字段吗

我想在数据库中存储事件的日期,但我不想存储秒或小于秒的信息。使用Rails,在我的迁移中,我可以选择创建一个
date
列或
datetime
列,其中第一个列的精度太低,第二个列的精度太高(直到第二个列)。我应该选择哪种类型来存储这样的日期?目前,我正在使用
datetime
并在每次模型中设置某个日期时手动将秒数设置为固定值(例如0)

大概是这样的:

self.date ||= Time.now.change(:sec => 0)

我完全偏离轨道了吗?我应该为日期的每个组成部分使用一个整数字段吗?(年、月、日等)或者
datetime
是正确的类型,但我不理解它的用途?(我认为这是指时间戳和秒数很重要的东西)

datetime
是正确的类型。并确保在UTC时区不带时区地存储它:


根据您的选择,使用SQL触发器将日期舍入到插入/更新时的分钟。它将简化您的ruby代码。

datetime
是正确的类型。并确保在UTC时区不带时区地存储它:


根据您的选择,使用SQL触发器将日期舍入到插入/更新时的分钟。它将简化您的ruby代码。

是的,
datetime
是正确的类型。您唯一的其他选项是
varchar
或只是一个普通的
时间戳
/
int
列。但是与
datetime
相比,这些都有其他缺点,您仍然需要手动删除该值的秒数。是的,
datetime
是正确的类型。您唯一的其他选项是
varchar
或只是一个普通的
时间戳
/
int
列。但是,与
datetime
相比,这些都有其他缺点,您仍然需要手动降低秒数。