by admin

Microsoft Access Convert Serial Number To Date

  1. Excel Convert Date To Serial
  2. Access Convert Date To Serial Number

I imported an Excel worksheet into Access. The date was converted to a serial number, but I need it to be displayed as a Date (MM/dd/yy). I can't change the table, as it is 'linked'. To convert such serial number to date in Excel, all you have to do is change the cell formatting. For this, select a cell or a range of cells with the numbers you want to convert to dates and press Ctrl+1 to open the Format Cells dialog. On the Number tab, choose Date, select the desired date format under Type and click OK. Yep, it's that easy! Microsoft Access Microsoft Excel. Microsoft Excel convert date to serial number. I searched but did not find a solution: I have a date an want it converted via vba to an Excel serial number 40178. Chris Status Solved Priority Medium Security Public.

This article describes the formula syntax and usage of the DATEVALUE function in Microsoft Excel.

Description

The DATEVALUE function converts a date that is stored as text to a serial number that Excel recognizes as a date. For example, the formula =DATEVALUE('1/1/2008') returns 39448, the serial number of the date 1/1/2008. Remember, though, that your computer's system date setting may cause the results of a DATEVALUE function to vary from this example

Excel Convert Date To Serial

The DATEVALUE function is helpful in cases where a worksheet contains dates in a text format that you want to filter, sort, or format as dates, or use in date calculations.

To view a date serial number as a date, you must apply a date format to the cell. Find links to more information about displaying numbers as dates in the See Also section.

Syntax

DATEVALUE(date_text)

The DATEVALUE function syntax has the following arguments:

  • Date_text Required. Text that represents a date in an Excel date format, or a reference to a cell that contains text that represents a date in an Excel date format. For example, '1/30/2008' or '30-Jan-2008' are text strings within quotation marks that represent dates.

    Using the default date system in Microsoft Excel for Windows, the date_text argument must represent a date between January 1, 1900 and December 31, 9999. The DATEVALUE function returns the #VALUE! error value if the value of the date_text argument falls outside of this range.

    If the year portion of the date_text argument is omitted, the DATEVALUE function uses the current year from your computer's built-in clock. Time information in the date_text argument is ignored.

Remarks

  • Excel stores dates as sequential serial numbers so that they can be used in calculations. By default, January 1, 1900 is serial number 1, and January 1, 2008 is serial number 39448 because it is 39,447 days after January 1, 1900.

  • Most functions automatically convert date values to serial numbers.

Example

Copy the example data in the following table, and paste it in cell A1 of a new Excel worksheet. For formulas to show results, select them, press F2, and then press Enter. If you need to, you can adjust the column widths to see all the data.

Access Convert Date To Serial Number

Data

11

3

2011

Formula

Description

Result

=DATEVALUE('8/22/2011')

Serial number of a date entered as text.

40777

=DATEVALUE('22-MAY-2011')

Serial number of a date entered as text.

40685

=DATEVALUE('2011/02/23')

Serial number of a date entered as text.

40597

=DATEVALUE('5-JUL')

Serial number of a date entered as text, using the 1900 date system, and assuming the computer's built-in clock returns 2011 as the current year.

39634

=DATEVALUE(A2 & '/' & A3 & '/' & A4)

Serial number of a date created by combining the values in cells A2, A3, and A4.

40850

Active1 month ago

I got a column called DateOfBirth in my csv file with Excel Date Serial Number Date

Example:

When i formatted cells in excel these are converted as

I need to do this transformation in SSIS or in SQL. How can this be achieved?

Hadi
28.4k8 gold badges34 silver badges79 bronze badges
SreedharSreedhar
13.8k30 gold badges95 silver badges153 bronze badges

13 Answers

In SQL:

In SSIS, see here

Nick.McDermaidNick.McDermaid
12.5k3 gold badges27 silver badges57 bronze badges

The marked answer is not working fine, please change the date to '1899-12-30' instead of '1899-12-31'.

Vojtěch Dohnal
6,1282 gold badges24 silver badges72 bronze badges
Jacob SantiagoJacob Santiago

You can cast it to a SQL smalldatetime:

SQL Server counts its dates from 01/01/1900 and Excel from 12/30/1899 = 2 days less.

Ricardo SouzaRicardo Souza
13.1k5 gold badges30 silver badges61 bronze badges

this actually worked for me

(minus 1 more day in the date)

referring to the negative commented post

Rory McCrossan
261k29 gold badges224 silver badges261 bronze badges
drinkydrinky

Found this topic helpful so much so created a quick SQL UDF for it.

LankymartLankymart
12.3k4 gold badges43 silver badges118 bronze badges

SSIS Solution

'The DT_DATE data type is implemented using an 8-byte floating-point number. Days are represented by whole number increments, starting with 30 December 1899, and midnight as time zero. Hour values are expressed as the absolute value of the fractional part of the number. However, a floating point value cannot represent all real values; therefore, there are limits on the range of dates that can be presented in DT_DATE.' Read more

From the description above you can see that you can convert these values implicitly when mapping them to a DT_DATE Column after converting it to a 8-byte floating-point number DT_R8.

Use a derived column transformation to convert this column to 8-byte floating-point number:

Then map it to a DT_DATE column

Or cast it twice:

You can check my full answer here:

HadiHadi
28.4k8 gold badges34 silver badges79 bronze badges

I had to take this to the next level because my Excel dates also had times, so I had values like this:

(also, to complicate it a little more, my numeric value with decimal was saved as an NVARCHAR)

The SQL I used to make this conversion is:

Excel convert date to serialhurleystyleehurleystylee
4321 gold badge9 silver badges17 bronze badges

In addition of @Nick.McDermaid answer I would like to post this solution, which convert not only the day but also the hours, minutes and seconds:

For example

  • 42948.123 to 2017-08-01 02:57:07.000
  • 42818.7166666667 to 2017-03-24 17:12:00.000
NicolaesseNicolaesse
1,1557 gold badges25 silver badges45 bronze badges

You can do this if you just need to display the date in a view:

CAST will be faster than CONVERT if you have a large amount of data, also remember to subtract (2) from the excel date:

If you need to update the column to show a date you can either update through a join (self join if necessary) or simply try the following:

You may not need to cast the excel date as INT but since the table I was working with was a varchar I had to do that manipulation first. I also did not want the 'time' element so I needed to remove that element with the final cast as 'date.'

If you are unsure of what you would like to do with this test and re-test! Make a copy of your table if you need. You can always create a view!

CDspace
2,4148 gold badges28 silver badges35 bronze badges
Serial
TurkishTurkish
marc_s
601k135 gold badges1150 silver badges1287 bronze badges
Selcuk AkbasSelcuk Akbas
4791 gold badge6 silver badges16 bronze badges

In postgresql, you can use the following syntax:

In this case, 38242.7711805556 represents 2004-09-12 18:30:30 in excel format

Alfonso BribiescaAlfonso Bribiesca

Try the approach discussed in the following link, which involves creating a function that performs the converstion and applying the function in your SQL.

user1896267

This worked for me because sometimes the field was a numeric to get the time portion.

Command:

V31
7,0373 gold badges22 silver badges43 bronze badges
user2788991user2788991

Not the answer you're looking for? Browse other questions tagged sqlsql-servertsqlssisetl or ask your own question.