表的Created_time
列的值为25-MAY-2012.10.12.320000 PM
。SQL时间戳查询
我需要编写一个查询,显示从table
XYZ因为它是建筑March
和April
月之间产生的所有字段,不可知的一年中他们都英寸
我想显示记录根据他们的id升序排列。
有人可以帮助我吗?
表的Created_time
列的值为25-MAY-2012.10.12.320000 PM
。SQL时间戳查询
我需要编写一个查询,显示从table
XYZ因为它是建筑March
和April
月之间产生的所有字段,不可知的一年中他们都英寸
我想显示记录根据他们的id升序排列。
有人可以帮助我吗?
查看月份和年份功能。 如果CREATED_TIME是datetime类型:
select *
from TABLE
where month(Created_time) in (3, 4)
对使用未知dbms的问题的产品具体答案... – jarlh
如果您需要检查Created_time
是否在任何一年的三月,那么这个想法是做这样的事情:
select *
from XYZ
where Created_time like '%-MARCH-%'
order by id;
或者,如果这不适用于您的column
类型,然后将其转换为varchar
。此外,还有一些RDBMS特定的function
可以帮助你,但是为了更全面的回答,我需要知道你正在使用的RDBMS和的Created_time
。
编辑
正如Jarhl指出,EXTRACT应该使用在这种情况下,检查了一个月。 Source,证明他是正确的说:
名称
EXTRACT
从日期提取零件的ANSI SQL标量函数是 提取物。 ANSI SQL标准语法
ANSI SQL EXTRACT函数采用date_part和 计算为日期时间值的表达式。 MySQL和Oracle和PostgreSQL的支持 ANSI SQL标准语法:
EXTRACT(date_part FROM expression)
根据评论,Created_time数据类型是TIMESTAMP(6)。 – jarlh
@jarlh谢谢你指出。我可能是错的,但我认为Oracle可以提供这样的精确度。在这种情况下,可以使用to_char完成到文本数据的转换。但是,如果我们在Oracle中,那么可以使用EXTRACT获取月份。来源:https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions052.htm#SQLRF00639 –
EXTRACT甚至是在这种情况下使用的ANSI SQL函数!(但问题中指定的时间戳不符合ANSI SQL标准,所以谁知道哪些dbms OP正在使用...) – jarlh
什么是列CREATED_TIME的数据类型? – JRG
你有什么试过,这不是一个作业网站 – dbajtr
哪个RDBMS是为了这个?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –