甲骨文:按月分组
Oracle: group by month
我有这样的问题,我正在使用 Oracle 数据库。在我的一张表中有一个时间戳格式的列,如 06.01.14 08:54:35
我必须 select 通过仅按月对该列进行分组来获取一些数据。
列的查询结果 if 06.01.14
then must be Jan.2014
in MM.YYYY
format, 我试过这样的查询
SELECT to_char(ctime,'mm.yyyy') from table_name
但结果不是日期格式,而是字符串格式。我无法使用 to_date
函数
你能帮帮我吗
如果ctime
的类型是TIMESTAMP
:
SELECT EXTRACT(month from ctime) "month" from table_name
编辑: 如果你想要像 "Jan - 2014" 这样的月份和年份,我想你只需要:
SELECT TO_CHAR(ctime, 'FMMon - YYYY') from table_name
(参见 http://www.techonthenet.com/oracle/functions/to_char.php)
如果 ctime
是一个字符串(例如类型 VARCHAR
),您需要先转换为时间戳(所以上面,而不是 ctime
,替换为 TO_TIMESTAMP(ctime, "MM.DD.YY HH:MM:SS")
HTH
当然,to_char 的任何变化都会产生字符串格式。这就是它的作用。我认为您混淆了值的显示方式及其背后的数据类型。
现在,如果您有 DATE 字段,那么您可以使用
TRUNC(cTime,'MON')
这将截断到该月的第一天,并保留日期格式。你如何显示它取决于你。但是,如果您期望 DATE 值没有 day/hour/minute/second 组件 - 那么恐怕您不了解数据类型。
我有这样的问题,我正在使用 Oracle 数据库。在我的一张表中有一个时间戳格式的列,如 06.01.14 08:54:35
我必须 select 通过仅按月对该列进行分组来获取一些数据。
列的查询结果 if 06.01.14
then must be Jan.2014
in MM.YYYY
format, 我试过这样的查询
SELECT to_char(ctime,'mm.yyyy') from table_name
但结果不是日期格式,而是字符串格式。我无法使用 to_date
函数
你能帮帮我吗
如果ctime
的类型是TIMESTAMP
:
SELECT EXTRACT(month from ctime) "month" from table_name
编辑: 如果你想要像 "Jan - 2014" 这样的月份和年份,我想你只需要:
SELECT TO_CHAR(ctime, 'FMMon - YYYY') from table_name
(参见 http://www.techonthenet.com/oracle/functions/to_char.php)
如果 ctime
是一个字符串(例如类型 VARCHAR
),您需要先转换为时间戳(所以上面,而不是 ctime
,替换为 TO_TIMESTAMP(ctime, "MM.DD.YY HH:MM:SS")
HTH
当然,to_char 的任何变化都会产生字符串格式。这就是它的作用。我认为您混淆了值的显示方式及其背后的数据类型。
现在,如果您有 DATE 字段,那么您可以使用
TRUNC(cTime,'MON')
这将截断到该月的第一天,并保留日期格式。你如何显示它取决于你。但是,如果您期望 DATE 值没有 day/hour/minute/second 组件 - 那么恐怕您不了解数据类型。