Обсуждение: 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?