Sql 我有一个日期/时间戳字段,在这里我只需要按日期提取记录

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

我有一个日期/时间戳字段,在这里我只需要按日期提取记录

示例:所有数据均记录为>='01/01/2016'

字段中的数据以以下格式存储“9/5/2012 7:34:59 AM”

我尝试了以下操作,但要么出现错误,要么结果不好:

  • 到哪里去字符(开始时间)>'01/01/2016'
    (仍然提供2012年的记录)
  • 其中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'