PDA

View Full Version : asp - access database time fields comparison


dbotton
09-13-2002, 07:26 PM
Hi experts,

I am looking for a way to compare in ASP two "date/time" fields that have the next format in access database : "17:38" and "18:21" for instance ( I mean I can retrieve these two values using recordsets, but I need to calculate how many minutes is the difference foe instance and do not know how to code this)

Please help me.
Best regards

Roy Sinclair
09-13-2002, 08:20 PM
See the DATEDIFF (http://msdn.microsoft.com/library/en-us/script56/html/vsfctDateDiff.asp) function.

dbotton
09-13-2002, 10:36 PM
thanks for this, but it seems datediff doen not apply when the field format of the date/time field in access is as "hh:mm". It seems datediff needs the date (day, month and year) to work and the format I need to use does only show time

dbotton
09-13-2002, 10:40 PM
to be more precise about my field in the database,
field name is whatever
data type is "Date/Time"
and Format is "Short Time"

whammy
09-14-2002, 07:21 AM
Actually you should still be able to use the DateDiff() function as long as you are using a valid format for the time ( I think that should work fine, you can define seconds and/or minutes as the criteria)... otherwise, just split the data into an array and parse it like that... ?

If neither one of those things work (which I seriously doubt), you need to store the time differently in the database.

dbotton
09-14-2002, 09:11 AM
Ok I will try this, but what about getting the hours from the field using hour() and then the minutes using minutes(), then converting hours in minutes and adding all the minutes...? It is less automatic but should work also, shouldn' t it ?

dfrancis
09-14-2002, 04:21 PM
From MSDN Library Visual Studio 6.0




DateDiff Function
Description

Returns a Variant (Long) specifying the number of time intervals between two specified dates.

Syntax

DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

The DateDiff function syntax has these named arguments

Part
Description



interval
Required. String expression that is the interval of time you use to calculate the difference between date1 and date2.

date1, date2
Required; Variant (Date). Two dates you want to use in the calculation.

firstdayofweek
Optional. A constant that specifies the first day of the week. If not specified, Sunday is assumed.

firstweekofyear
Optional. A constant that specifies the first week of the year. If not specified, the first week is assumed to be the week in which January 1 occurs.




Settings

The interval argument has these settings

Setting
Description



yyyy
Year

q
Quarter

m
Month

y
Day of year

d
Day

w
Weekday

ww
Week

h
Hour

n
Minute

s
Second




The firstdayofweek argument has these settings

Constant
Value
Description



vbUseSystem
0
Use the NLS API setting.

vbSunday
1
Sunday (default)

vbMonday
2
Monday

vbTuesday
3
Tuesday

vbWednesday
4
Wednesday

vbThursday
5
Thursday

vbFriday
6
Friday

vbSaturday
7
Saturday




The firstweekofyear argument has these settings

Constant
Value
Description



vbUseSystem
0
Use the NLS API setting.

vbFirstJan1
1
Start with week in which January 1 occurs (default).

vbFirstFourDays
2
Start with the first week that has at least four days in the new year.

vbFirstFullWeek
3
Start with first full week of the year.




Remarks

You can use the DateDiff function to determine how many specified time intervals exist between two dates. For example, you might use DateDiff to calculate the number of days between two dates, or the number of weeks between today and the end of the year.

To calculate the number of days between date1 and date2, you can use either Day of year ("y") or Day ("d"). When interval is Weekday ("w"), DateDiff returns the number of weeks between the two dates. If date1 falls on a Monday, DateDiff counts the number of Mondays until date2. It counts date2 but not date1. If interval is Week ("ww"), however, the DateDiff function returns the number of calendar weeks between the two dates. It counts the number of Sundays between date1 and date2. DateDiff counts date2 if it falls on a Sunday; but it doesn't count date1, even if it does fall on a Sunday.

If date1 refers to a later point in time than date2, the DateDiff function returns a negative number.

The firstdayofweek argument affects calculations that use the "w" and "ww" interval symbols.

If date1 or date2 is a date literal, the specified year becomes a permanent part of that date. However, if date1 or date2 is enclosed in double quotation marks (" "), and you omit the year, the current year is inserted in your code each time the date1 or date2 expression is evaluated. This makes it possible to write code that can be used in different years.

When comparing December 31 to January 1 of the immediately succeeding year, DateDiff for Year ("yyyy") returns 1 even though only a day has elapsed.

See Also

DateAdd function, DatePart function, Day function, Format function, Now function, Weekday function, Year function.

Example

This example uses the DateDiff function to display the number of days between a given date and today.

Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
Example (Microsoft Access)

The following examples use the DateDiff function to calculate the number of calendar weeks between the first of the year and today, and the number of days since February 1, 1995 respectively.

Debug.Print DateDiff("ww", "1-1", Now())
Debug.Print DateDiff("y", #1-Feb-1995#, Now())
The next example shows how to use the DateDiff function in a query expression. Suppose you have an Orders table that contains an OrderDate field and a ShippedDate field. You can create a calculated field in a query to display the time elapsed between an order date and a shipped date for each order. In the Query window, create a new query by adding the Orders table and dragging the OrderID field to the query design grid. In an empty Field cell, enter the following to create a calculated field.

DaysElapsed: DateDiff("y", [OrderDate], [ShippedDate])