Thread: What day is it - when it isn't NOW()?
Hi, SELECT to_char(now(), 'Day'); returns Friday as I'd hoped. But how do I return the day of the week for a specific date other than now()? I'm looking for something along the lines of: SELECT to_char('2003-08-04', 'Day') without much success. Can anyone point me to the right function/combination of functions to achieve this? Thanks! ----------------------------------------------------------------------- Thomas Good e-mail: tomg@sqlclinic.net Programmer/Analyst phone: (+1) 718.818.5528 Residential Services fax: (+1) 718.818.5056 Behavioral Health Services, SVCMC-NY mobile: (+1) 917.282.7359 // Welches ist das groessere Verbrechen? // Massenvernichtungswaffen besitzen oder sie erfinden?
'2003-08-04' is ambiguous. It could be a text string, a date, something else. So cast it. SELECT to_char('2003-08-04'::date, 'Day'); > SELECT to_char(now(), 'Day'); returns Friday as I'd hoped. > But how do I return the day of the week for a specific date other > than now()? I'm looking for something along the lines of: > SELECT to_char('2003-08-04', 'Day') without much success. > > Can anyone point me to the right function/combination of functions > to achieve this? > > Thanks! > > ----------------------------------------------------------------------- > Thomas Good e-mail: tomg@sqlclinic.net > Programmer/Analyst phone: (+1) 718.818.5528 > Residential Services fax: (+1) 718.818.5056 > Behavioral Health Services, SVCMC-NY mobile: (+1) 917.282.7359 > > // Welches ist das groessere Verbrechen? > // Massenvernichtungswaffen besitzen oder sie erfinden? > > > > ---------------------------(end of broadcast)--------------------------- > TIP 7: don't forget to increase your free space map settings >
Thomas, > SELECT to_char(now(), 'Day'); returns Friday as I'd hoped. > But how do I return the day of the week for a specific date other > than now()? I'm looking for something along the lines of: > SELECT to_char('2003-08-04', 'Day') without much success. > > Can anyone point me to the right function/combination of functions > to achieve this? Well, you could try the online docs under "Functions and operators" <grin>. Two possibilities: SELECT to_char('2003-08-04'::TIMESTAMP, 'Day') should make the to_char version work for you. Alternately, SELECT EXTRACT(dow FROM '2003-08-04') will give you a numerical (0-6) day of the week. -- Josh Berkus Aglio Database Solutions San Francisco
On Fri, 1 Aug 2003, Josh Berkus wrote: > Thomas, > > > than now()? I'm looking for something along the lines of: > > SELECT to_char('2003-08-04', 'Day') without much success. > > > > Well, you could try the online docs under "Functions and operators" <grin>. Hey Josh, how goes...yeah I bumbled around date/time functions for awhile but couldn't find the right syntax...maybe I need new glasses? ;-) > Alternately, SELECT EXTRACT(dow FROM '2003-08-04') will give you a numerical > (0-6) day of the week. I tried this but I don't need an integer returned so I went with the to_char() approach. Thanks for tip - and thanks to Rod as well. On 1 Aug 2003, Rod Taylor wrote: > > SELECT to_char('2003-08-04'::date, 'Day'); > This is what I went for as it is the closest to the MySQL/Oracle syntax I use for the same purpose, particularly Oracle: $query = qq |SELECT DATE_FORMAT('$start_date', '%W')| if ($dbtype eq 'mysql'); $query = qq |SELECT TO_CHAR('start_date'::date, 'Day') if ($dbtype eq 'postgres'); $query = qq |SELECT TO_CHAR(TO_DATE('$start_date'), 'Day') FROM DUAL| if ($dbtype eq 'oracle'); Thanks again fellas - have a nice weekend! Cheers ----------------------------------------------------------------------- Thomas Good e-mail: tomg@sqlclinic.net Programmer/Analyst phone: (+1) 718.818.5528 Residential Services fax: (+1) 718.818.5056 Behavioral Health Services, SVCMC-NY mobile: (+1) 917.282.7359 // Welches ist das groessere Verbrechen? // Massenvernichtungswaffen besitzen oder sie erfinden?