Skip to content

Instantly share code, notes, and snippets.

@rsim
Created April 7, 2015 08:01
Show Gist options
  • Select an option

  • Save rsim/d11652a8336137832df9 to your computer and use it in GitHub Desktop.

Select an option

Save rsim/d11652a8336137832df9 to your computer and use it in GitHub Desktop.
How to get the current Unix timestamp in SQL

Get the current Unix timestamp (seconds from 1970-01-01T00:00:00Z) in SQL.

  • MySQL: UNIX_TIMESTAMP()
  • PostgreSQL: CAST(EXTRACT(epoch FROM NOW()) AS INT)
  • MS SQL: DATEDIFF(s, '1970-01-01', GETUTCDATE())
  • Oracle: (CAST(SYS_EXTRACT_UTC(SYSTIMESTAMP) AS DATE) - DATE'1970-01-01') * 86400
@tikluganguly

Copy link
Copy Markdown

In case you want to get the value in millisecond instead of seconds in T-SQL you may use the following code

(cast(DATEDIFF(s, '1970-01-01', GETUTCDATE()) as bigint)*1000+datepart(ms,getutcdate()))

@aersam

aersam commented Sep 6, 2021

Copy link
Copy Markdown

Please use DATEDIFF_BIG for MS SQL Server in order to not run into Year 2038 Problem

@Danipulok

Copy link
Copy Markdown

Thanks a lot

@boogiefromzk

Copy link
Copy Markdown

Thank you, that CAST to INT improves performance dramatically.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment