Converting Varchar Date into timestamp in Snowflake - snowflake-cloud-data-platform

I have a date field as varchar type and need to convert it into Timestamp as i need to apply datediff function over it. Below is the varchar date format i have
20210201053414
This is 1st of Feb 2021 05:34:14 AM
I tried
SELECT TO_TIMESTAMP('20210201053414','yyyyMMddHHmmss')
but it says
Can't parse '20210201053414' as timestamp with format 'yyyyMMddHHmmss'
Thank You.

Try this one:
SELECT TO_TIMESTAMP('20210201053414','YYYYMMDDHH24MISS');
The issue is about MM - it should be MI. Please check the Format Specifiers:
https://docs.snowflake.com/en/user-guide/date-time-input-output.html#about-the-format-specifiers-in-this-section

Related

Converting Varchar to Timestamp in Snowflake

I have a date defined as varchar. The value of the date field is 19810801. When I am trying to convert into Timestamp using To_TimeSTAMP the value returned is 1970-08-20 06:18:21.000 +0000. I am not sure why snowflake is setting the year as 1970 and month as August.
Do you know what could be the issue here?
Here is my code -
Select to_timestamp_tz(EFFECTIVE_DATE) from Table1
The output returned is 1970-08-20 06:18:21.000 +0000 for the EffectiveDate 19810801
TO_TIMESTAMP is evaluating the value as epoch time:
https://www.epochconverter.com/
If you want to convert it as 1981-08-01, you can use this:
Select to_timestamp_tz('19810801','YYYYMMDD');

How to create query with format date DD-MM-YYYY

I have query database like this:
SELECT * FROM TABLE WHERE start_date = '01-10-2016' //DD-MM-YYYY
But above code error and actually in database date format is YYYY-MM-DD.
So how to create query with format date DD-MM-YYYY?
A proper date column (data type date !) has no format. Then it's enough to get your data input for a date column right, use to_date() for non-standard input format like #Shiva posted. Or better yet, always provide date literals in ISO 8601 format 'YYYY-MM-DD' to begin with, which works with any locale setting.
If you are running a broken design with dates stored as text, then combine to_date() and to_char() to transform any valid date format into any other text format:
SELECT * FROM tbl
WHERE start_date = to_char(to_date('01-10-2016', 'DD-MM-YYYY'), 'YYYY-MM-DD');
May be you can use to_date function to convert the above format into the standard format.
For instance,
SELECT to_date('01-10-2016', 'DD-MM-YYYY');
----------
2016-10-01
1 row
https://www.techonthenet.com/postgresql/functions/to_date.php

How to convert date time format in SQL Server 2014

I'm using this query
SELECT convert(nvarchar(MAX), GETDATE(), 22) AS Date
Result: 08/05/16 12:23:08 PM
But I want result like this 8/5/2016 12:23:08 PM
dd/mm/yyyy hh:mm:ss a
As of SQL Server 2012 the FORMAT function is available allowing you to specify the format of data types and is locale-aware so it will consider date formatting in relation to the session's language or optional culture parameter.
You can achieve your custom formatting like so: FORMAT(GETDATE(), 'd/M/yyyy hh:mm:ss tt')
Note your requested format dd/mm/yyyy hh:mm:ss a is incorrect as in the case of single digits you want to remove zero padding i.e. 10/8/2016 not 10/08/2016. That's why in the format string I use only d and M.
Also, pay attention to #GarethD comment about the cost on larger datasets.
You could use the FORMAT function in T-SQL : https://msdn.microsoft.com/en-us/library/hh213505(v=sql.120).aspx
Here is the code :
SELECT FORMAT(GETDATE(), 'd/M/yyyy hh:mm:ss tt')

Sql server getdate() convert problem

Hey I have time column and datatype date.. default value is getdate() but this return format like 2011-04-24
but I want like 24.04.2011 How can I convert that format?
what is the value format?
Getdate() is a datetime. That has no specific format. If you want a specific format you must convert it into a varchar.
select convert(varchar(10),getdate(),104)
There's more info on the different conversion codes here.
An SQL Server date column does not have an associated format.
You can specify a format when converting a date to a varchar column. See the MSDN page for convert. From MSDN, 104 is mm.dd.yyyy, so you could:
select convert(varchar(12),getdate(),104)
This prints 24.04.2011.

sql convert date format not working

I can not convert field run_date on sysjobhistory table from yyyymmdd to mmddyyyy.
select CONVERT(varchar(10),run_date),101) as Date from sysjobhistory
Please correct me. Thanks.
declare #dt date ='20161025'
select #dt,CONVERT(varchar(15),#dt,101)
See here
Date type does not have yyyymmdd nor mmddyyyy. This type only valid for string (as varchar, nvarchar). Plus, you have extra ) after rundate.
The correct one should be:
select CONVERT(varchar(10),run_date,101) from sysjobhistory
where 101 is style argument: https://msdn.microsoft.com/en-us/library/ms187928.aspx
shouldn't it be: CONVERT (varchar(10), run_date, 101). What I am trying to say is that you have an extra parenthesis after run_date.

Resources