Sql 我有一个日期/时间戳字段,在这里我只需要按日期提取记录
我有一个日期/时间戳字段,在这里我只需要按日期提取记录 示例:所有数据均记录为>='01/01/2016' 字段中的数据以以下格式存储“9/5/2012 7:34:59 AM” 我尝试了以下操作,但要么出现错误,要么结果不好:Sql 我有一个日期/时间戳字段,在这里我只需要按日期提取记录,sql,oracle,datetime,Sql,Oracle,Datetime,我有一个日期/时间戳字段,在这里我只需要按日期提取记录 示例:所有数据均记录为>='01/01/2016' 字段中的数据以以下格式存储“9/5/2012 7:34:59 AM” 我尝试了以下操作,但要么出现错误,要么结果不好: 到哪里去字符(开始时间)>'01/01/2016'(仍然提供2012年的记录) 其中trunc(开始时间)>'01/01/2016'(错误:不是有效月份) 使用到日期将字符串转换为日期,然后进行比较 试试这个: where start_time >= to_dat
(仍然提供2012年的记录)到哪里去字符(开始时间)>'01/01/2016'
(错误:不是有效月份)其中trunc(开始时间)>'01/01/2016'
到日期
将字符串转换为日期,然后进行比较
试试这个:
where start_time >= to_date('01/01/2016', 'dd/mm/yyyy');
在mysql中,您应该使用 这是字符串规范格式
select * from my_table
where start_time > '2016/01/01'
或
或使用适当的格式将str_转换为_日期
select * from my_table
where start_time > str_to_date('01/01/2016', '%d/%m/%Y')
在Oracle(可能还有其他数据库产品)中,您可以使用ANSI日期文字,如下所示。您也可以使用来指定日期()
,但ANSI日期文字的好处是它不需要函数调用。(函数调用是消耗时间和资源的开销,尽管只调用一次to_date()
并不重要。)
请注意,在ANSI标准日期文字中,日期必须采用YYYY-MM-DD的精确格式(带破折号,不带斜杠或任何其他分隔符),由于ANSI日期文字不采用格式模式。请参阅:to_char和trunc来自Oracle…您确定使用MySQL吗?您的日期/时间戳字段是
date
还是TIMESTAMP
数据类型,还是VARCHAR2
或NUMBER
?最好的方法是运行descripe
命令:descripe
。这将为您提供表中所有列的名称和数据类型。谢谢!这起作用了。我能得到我需要的数据。
... where start_time >= date '2016-01-01'