Kas*_*age 3 sql database oracle date date-arithmetic
我正在使用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;
Run Code Online (Sandbox Code Playgroud)
上面的一个没关系.但我希望得到这样的日期:
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;
Run Code Online (Sandbox Code Playgroud)
我通过互联网搜索了这个,大多数人都要求使用这样的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;
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用.帮帮我解决这个问题!
my_day喜欢'08 -feb-2015'
我认为你在SELECTION和FILTER PREDICATE之间感到困惑.
另外,请记住,''08-feb-2015'不是日期,它是一个字符串.
您希望根据DATE值过滤行.因此,如果您没有时间部分,请使用或使用ANSI Date文字将RHS上的文字转换为DATE.TO_DATE
现在,请记住,DATE有日期和时间元素,所以你需要 -
TRUNC日期列来摆脱时间元素我假设my_day作为日期列.将过滤器修改为:
使用ANSI Date文字:固定格式'YYYY-MM-DD'
where my_day >= DATE '2015-02-08' and my_day < DATE '2015-02-09'
Run Code Online (Sandbox Code Playgroud)
或者,TO_DATE使用适当的格式模型.请记住,TO_DATE是NLS依赖,所以我已经使用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')
Run Code Online (Sandbox Code Playgroud)
以上.my_day假定为静态日期列,而不是列别名.
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |