gpt4 book ai didi

sql - sql中如何对每个日期的数据进行分类?

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:09 25 4
gpt4 key购买 nike

我正在使用 Oracle sql developer。我必须将一些数据分类到表中的每个 Date 中。

我使用 TO_CHAR 函数来更改日期格式。

select to_char(txn_date, 'dd-mon-rrrr') my_day, some_coloums
from mwt_wallet_transactions
order by my_day;

上一个没问题。但我想像这样在给定日期获取它:

select to_char( txn_date, 'dd-mon-rrrr') my_day, some_coloums
from mwt_wallet_transactions
where my_day like '08-feb-2015'
order by my_day;

我在互联网上搜索了这个,大多数人要求像这样使用 CONVERT 函数:

select convert (VARCHAR(10), txn_date , 23 )  my_day, some_colomns
from mwt_wallet_transactions
where my_day like '08-feb-2015'
order by my_day;

但这对我不起作用。帮我解决这个问题!

最佳答案

where my_day like '08-feb-2015'

我认为您对 SELECTIONFILTER PREDICATE 感到困惑。

另外,请记住,''08-feb-2015' 不是DATE,而是一个字符串

您想根据 DATE 值过滤行。因此,将 R.H.S. 上的文字转换为使用 TO_DATE 转换为 DATE,如果没有时间部分,则使用 ANSI 日期文字

现在,请记住,DATE 包含日期和时间元素,因此您需要 -

  • 在日期列上使用 TRUNC 来摆脱时间元素
  • 或者,使用DATE 范围条件以获得更好的性能,因为它会在日期列上使用任何常规索引

我假设 my_day 作为日期列。将过滤器修改为:

使用ANSI 日期文字:固定格式'YYYY-MM-DD'

where my_day >= DATE '2015-02-08' and   my_day < DATE '2015-02-09'

或者,TO_DATE 使用适当的格式模型。请记住,TO_DATE NLS dependent,因此我使用 NLS_DATE_LANGUAGE 使其独立于 NLS。

WHERE my_day >= TO_DATE('08-feb-2015','dd-mon-yyyy','NLS_DATE_LANGUAGE=american') 
AND my_day < TO_DATE('09-feb-2015','dd-mon-yyyy','NLS_DATE_LANGUAGE=american')

以上。 my_day 被假定为静态日期列,而不是列别名。

关于sql - sql中如何对每个日期的数据进行分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com