Improve company productivity with a Business Account.Sign Up

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

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
Asked:
jfringer
1 Solution
 
rockiroadsCommented:
format("mydate","YYYYMMDD")

0
 
mbizupCommented:
Format(YourDate,"yyyymmdd")
0
 
rockiroadsCommented:
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

hilite Format and hit F1 for more info
0
Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

 
mdegoodCommented:
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
 
rockiroadsCommented:
DateSerial returns a date, not a serial value
0
 
Rey Obrero (Capricorn1)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
 
fanopoeCommented:
don't forget about:
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
 
dannywarehamCommented:
(just for sh!ts and giggles)

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

myNumber = yourdatefield *RND()

:-)

0
 
harfangCommented:
rockiroads:
> 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
 
rockiroadsCommented:
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.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now