unique number from current date

like the following in t-sql
declare @tempdate varchar(23)
set @tempdate = CONVERT(VARCHAR(23), GETDATE(), 121)
select replace(replace(replace(replace(@tempdate,'-',''),' ',''),':',''),'.','')

what would be the feature to get a unique number from date in access?
LVL 6
anushahannaAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Paul_Harris_FusionConnect With a Mentor Commented:
dim f as double
f = CDbl(Now())

This will give you a decimal number corresponding to the current date time.
0
 
peter57rConnect With a Mentor Commented:
I guess you can do...
cdbl(Now())*10000000000

I wouldn't like to guarantee uniqueness, although I don't see that your t-sql expression does that either.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Date with Time is already unique.

mx
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
anushahannaAuthor Commented:
would we do something with date and time in access to produce a unique number? basically we will need the equivalent of
GETDATE()
CONVERT
REPLACE
in access code to make it happen?
0
 
peter57rCommented:
I was interested in mx's comment.

I think it is very likely that the STORED value in a datetime field is unique in an application.  However, as soon as you do what the poster wants it ceases to be unique because the time 'granularity' is broadened - so that stored time values which differ at the nth decimal place all get rounded to the same second.

And to expand on my previous comment - I don't see that a time value which only goes to milliseconds can be thought of as unique.  Access could probably save 5 records in a millisecond.  I would imagine sql server can do more.
0
 
anushahannaAuthor Commented:
Thanks for explaining that Peter.

if i can go to ms in access, that is good enough for this application.

how can you get it to the ms with format command?

    Dim DateValue As String
    DateValue= Format(Now(),"dd/mm/yyyy hh:nn:ss")
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
I guess it depends on what the usage is, which was not specified.
I suppose you could always append or add the Access Autonumber to it.

mx
0
 
anushahannaAuthor Commented:
mx, every csv files that is processed needs a unique number attached, when the data is imported into the table.

how would you attach now() and autonumber together?
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Connect With a Mentor Commented:
I guess the table would have an Auto Number field, and you create a combined field with the Formatted Date/Time EG >>> yyyymmddHHnnss & AutoNumber value .... something like that.  Then, no matter if the date/time stamp was identical as Peter noted, you still end up with a unique value.

mx
0
 
pteranodon72Connect With a Mentor Commented:
Now() does not report milliseconds.

However, you can get date/time in milliseconds via API call:
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

Public Function MSdatetime() As String
Dim tS As SYSTEMTIME
Dim sRet
On Error Resume Next
GetSystemTime tS
sRet = tS.wYear & Format(tS.wMonth, "00") & Format(tS.wDay, "00") _
& Format(tS.wHour, "00") & Format(tS.wMinute, "00") & Format(tS.wSecond, "00") _
 & Format(tS.wMilliseconds, "000")
MSdatetime = sRet
End Function

Open in new window


By formatting each component values into two places, you'll get different numbers with millisecond granularity. Be careful-- today's processors can do a lot in a millisecond!

HTH,

pT72
0
 
anushahannaAuthor Commented:
thanks for the idea.
0
All Courses

From novice to tech pro — start learning today.