I prefer:

SELECT * FROM invoices WHERE DATEDIFF(Day, invdate, getdate()) = 0

'Day' can be Month, Year, etc.

On Wed, May 11, 2011 at 8:07 PM, Rafael Copquin <[email protected]> wrote:
> I am using 2008 and did not know that.
> I tried this:
>
> select * from invoices where invdate=cast(getdate() as date)
>
> and it works too
>
> Thank you
>
> Rafael
>
>
> El 11/05/2011 15:18, Grigore Dolghin escribió:
>> There's something wrong; either you're using 2005 or earlier, either you
>> didn't find it yet in 2008, because it's there.
>>
>> http://msdn.microsoft.com/en-us/library/bb630352.aspx
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On
>> Behalf Of Rafael Copquin
>> Sent: Wednesday, May 11, 2011 9:16 PM
>> To: [email protected]
>> Subject: Re: transact sql
>>
>> Thank you Fred
>>
>> This works very well
>>
>> And also thanks to Ted Roche for his suggestion of using named parameters
>>
>> What I am using is a literal such as cCmd
>>
>> dDate = date()
>> cCmd = 'select * from invoices where invdate= '+'{'+dtoc(dDate)+'}'
>>
>> nResult = SQLEXEC(nHandle, cCmd,'curInvoices')
>>
>> But if I use a named parameter, with the ? operator,  I guess it would work
>> as well
>>
>> I thought that there must be a better way but for some reason, MS built into
>> SQL Server Express 2008 many date functions but omitted an equivalent to the
>> VFP date() function. Why??
>>
>> Rafael Copquin
>>
>>
>>
>>
>> El 11/05/2011 14:47, Fred Taylor escribió:
>>> True, but if you declare a local variable for T-SQL, you do get back a
>>> date
>>> type:
>>>
>>> DECLARE @dvar DATE;
>>> SELECT @dvar=getdate();
>>> SELECT * FROM invoices WHERE invdate=@dvar;
>>>
>>> Fred
>>>
>>>
>>> On Wed, May 11, 2011 at 10:44 AM, Richard Kaye<[email protected]>   wrote:
>>>
>>>> Not exactly. The VFP date() function returns a "date" datatype. The
>>>> SQL getdate()( function returns a "datetime" datatype. Depending on
>>>> the version of SQL you're talking to, there is no such thing as a
>>>> "date" datatype. To go back to Rafael's original question, he'd
>>>> probably have to use a BETWEEN filter in his SQL as it's unlikely
>>>> that invdate will return any matching rows when using a direct
>>>> comparison to the current datetime down to the millisecond.
>>>>
>>>> --
>>>> rk
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: [email protected]
>>>> [mailto:[email protected]]
>>>> On Behalf Of Stephen Russell
>>>> Sent: Wednesday, May 11, 2011 1:26 PM
>>>> To: [email protected]
>>>> Subject: Re: transact sql
>>>>
>>>> On Wed, May 11, 2011 at 12:07 PM, Rafael
>>>> Copquin<[email protected]>
>>>> wrote:
>>>>> What is the transact sql equivalent of the date() function?
>>>>>
>>>>> How would you change the following vfp statement into a transact sql
>>>>> statement?
>>>>>
>>>>> select * from invoices where invdate = date()
>>>> -------------
>>>>
>>>> date() = getdate()
>>>>
>>>>
>>>>
>>>> --
>>>> Stephen Russell
>>>>
>>>> Unified Health Services
>>>> 60 Germantown Court
>>>> Suite 220
>>>> Cordova, TN 38018
>>>>
>>>> Telephone: 888.510.2667
>>>>
>>>> 901.246-0159 cell
>>>>
[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to