oracle - How to get the first day of the week, depending on NLS -


i want date of first day of week want dependant nls parameters. , when run on america should give me sundays date, in turkey should give me monday..

select trunc(to_date(sysdate,'dd-mm-yy'),'iw')from dual; 

how can make dependant?

according documentation, trunc(sysdate, 'iw') gives same day of week first day of iso week, monday. you've seen, not nls-dependent.

you might think using w give non-iso, nls-dependent, version, different - same day of week first day of month. run now, give monday, regardless of settings, since july 1st monday.

so need either d, dy or day - thaey behave same:

alter session set nls_territory = 'america';  select trunc(sysdate, 'd') dual;  trunc(sys --------- 14-jul-13  alter session set nls_territory = 'turkey';  select trunc(sysdate, 'd') dual;  trunc(sysd ---------- 15/07/2013 

incidentally, original query doing to_date(sysdate,'dd-mm-yy'). sysdate date. you're forcing implcit conversion date string, use nls_date_format, , explicit conversion date using dd-mm-yy. not pointless, break if nls_date_format didn't match (roughly, there quite bit of leeway) dd-mm-yy use explicitly:

alter session set nls_date_format = 'dd/mm/yyyy';  select to_date(sysdate,'dd-mm-yy') dual;  to_date(sy ---------- 18/07/2013  alter session set nls_date_format = 'dd-mon-rr';  select to_date(sysdate,'dd-mm-yy') dual;  to_date(s --------- 18-jul-13  alter session set nls_date_format = 'mm/dd/yyyy';  select to_date(sysdate,'dd-mm-yy') dual; select to_date(sysdate,'dd-mm-yy') dual                * error @ line 1: ora-01843: not valid month  alter session set nls_date_format = 'yyyy-mm-dd';  select to_date(sysdate,'dd-mm-yy') dual; select to_date(sysdate,'dd-mm-yy') dual                * error @ line 1: ora-01861: literal not match format string 

... etc. , nls_date_format inherited nls_territory default, issue if you're expecting deal multiple regions anyway.


Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -