x
• Status: Solved
• Priority: Medium
• Security: Public
• Views: 318

# Character Date

What is the formula for converting a date format of 1/1/2007 to either a serial date for character data such as 20070101?

Thanks again...
0
jfringer
1 Solution

Commented:
format("mydate","YYYYMMDD")

0

Commented:
Format(YourDate,"yyyymmdd")
0

Commented:
in fact u can use a variety of different masks within the format command

DD-MMM-YYYY   will produce 01-JAN-2006
MM/DD/YY will produce 01/01/06

all sorts of fun

0

Commented:
There is a builtin serial function:

DateSerial («year», «month», «day»)

This will return the serial value for that day...  Not sure if that's what you were looking for or not....
0

Commented:
DateSerial returns a date, not a serial value
0

Commented:
to convert a date to serial
place this functions in a module

Function Date2Serial(varDate As Date)
Dim yYear As Integer
yYear = Right(varDate, 4)

If IsLeapYear(yYear) = True Then
Date2Serial = varDate - CDate("January 1,1900") + 2
Else
Date2Serial = varDate - CDate("January 1,1900") + 1
End If
End Function

Public Function IsLeapYear(varYear As Integer) As Boolean
IsLeapYear = (Day(DateSerial(varYear, 3, 0)) = 29)
End Function

0

Commented:
year(mydate) & right("00" & month(mydate), 2) & right("00" & day(mydate), 2)

just for fun and an alternative way of breaking out the individual pieces

;)
0

Commented:
(just for sh!ts and giggles)

You could use your date as a seed for a random number:

myNumber = yourdatefield *RND()

:-)

0

Commented:
> DateSerial returns a date, not a serial value

There is no real difference. DateSerial() returns a serial value, with side instructions to display it using default date format. It's still what the name implies, a serial. cf:

Format( Now(), "0.0")
CDbl(Now())
Int( Now() )
Format( 2^16, "ddddd" )
Format( #1:43 PM#, "percent" )

jfringer,

You have ample answers about "character dates". For "serial dates", as you see, there is no conversion needed as such, because all dates are serial dates. However, to remove the default date formatting, you can change the format of the date field to "0", use the dummy CDbl() conversion, or true conversions like Int(), CLng(), or -- again -- Format().

Reversly, you can create a Long Integer field and format it as date (I do that often).

(°v°)
0

Commented:
Harfang, for sure, ok, default format is date, so apologies mdegood
If u want the long value, u will have to specify the exact data type if u want to assign it to a variable
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.