What date format use in sqlite - sqlite

I have a sqlite table within a column type DATE. Why doesn't this query work? I save my date in this format: dd-MM-YYYY
SELECT * FROM scadenze where data < strftime ('%d-%m-%Y', '31-03-2017') ;

This is not one of the supported date formats. Better use yyyy-mm-dd.

Related

Teradata - Date format conversion from INT(yyyymmdd) type to date(mm/dd/yyyy) in Teradata SQL Assistant

I have dates in integer format in a column. The length is 11.
Example values
current format integer (11) --> date format required
yyyymmdd --> dd/mm/yyyy
20121203 --> 03/12/2012
20090403 --> 03/04/2009
Can someone suggest a solution keeping in mind that the change need to reflect across the entire column in the table?
Use STR_TO_DATE :
select STR_TO_DATE(col1, "%Y%m%d") as my_date
from test_tbl;
Result:
my_date
2012-12-03
2009-04-03
Demo
Or DATE_FORMAT as previous answer:
select DATE_FORMAT(col1, "%d/%m/%Y") as my_date
from test_tbl;
Result:
my_date
03/12/2012
03/04/2009
Demo
Maybe using both:
select DATE_FORMAT(STR_TO_DATE(col1, "%Y%m%d"),'%d/%m/%Y') as my_date
from test_tbl;
my_date
03/12/2012
03/04/2009
Demo
The easiest way is based on Teradata's storage of dates:
Cast(intdate - 19000000 AS DATE)
Of course this only works if there are no bad dates, as your source seems to be MySQL there might be 20220200, etc.
For Teradata SQL Assistant, you can use TO_CHAR and then CAST it to a DATE format like this:
SEL CAST(TO_CHAR(20211015) AS DATE FORMAT 'YYYYMMDD')
Result: 10/15/2021 (mm/dd/yyyy)
Docummentation: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
DATE_FORMAT("20121203", "%d/%m/%Y")

Convert date to other format other than YYYY-MM-DD

I need to convert input date coming in format YYYY-MM-DD. First I convert it into char by following:
TO_CHAR(<date_column>,'YY/MM/DD')
then try to convert it into date for this format:
to_date((TO_CHAR(<date_column>,'YY/MM/DD')),'YY/MM/DD')
As to_date always converts to default date type of YYYY-MM-DD. What other way can I use to convert this into other format. I am using Informatica Powercenter, so I can not find other function other than TO_DATE.
I think we are ignoring basics - to_date() converts to a date format. Now it can be displayed in dd/mm/yyyy depending on setup in your DB client or if you are dumping in a file probably YYYY-MM-DD. And on a date filed you cfan use TO_CHAR o convert it to any format.
So, if your input is a string and is in 'YY/MM/DD' then use TO_CHAR(TO_DATE(imp_yymmdd,'YY/MM/DD'),'DD/MM/YYYY') - output will be a string of your desired format i.e. DD/MM/YYYY.
If your input is a date then use TO_CHAR(imp_date,'DD/MM/YYYY') - output will be a string of your desired format.
Date datatype has no format. You can format a string representing a date.
Assuming your input is date, just use TO_CHAR(yourdate, 'desiredformat').
If your input is a string, you first need to convert it to date then back to string again, with the desired format applied. So:
TO_CHAR(TO_DATE(yourstring, "format-it-comes-in"), "desired-format")
Which in your case would be:
TO_CHAR(TO_DATE(yourstring, "YYYY-MM-DD"), "YY/MM/DD")

SQLite3 Date Ranges not working

I cannot get date ranges to work properly in a query using SQLite3
Create And Populate Table:
create table dates(myDate DATE);
insert into dates values('2012-10-1');
insert into dates values('2012-10-2');
insert into dates values('2012-10-3');
insert into dates values('2012-10-4');
insert into dates values('2012-10-5');
insert into dates values('2012-10-6');
insert into dates values('2012-10-7');
insert into dates values('2012-10-8');
insert into dates values('2012-10-9');
insert into dates values('2012-10-10');
Query:
select * from dates where myDate >= '2012-10-1' and myDate < '2012-10-31';
Results:
2012-10-1
2012-10-2
2012-10-3
2012-10-10
Where are 10-4 - 10-9?
I get the same results if I use between:
select * from dates where myDate BETWEEN '2012-10-1' AND '2012-10-30';
If I change either of the queries to use '2012-11-1' as the end date, they work properly.
Any help would be greatly appreciated!
Date values must be in the format yyyy-mm-dd with fixed-width fields.
This is required because SQLite has no native date format; to compare date strings correctly, fields with the same meaning must always be at the same position in the string.

SQLite Extract Month From Column

I have a column of data with this date format mm/dd/yyyy. I would like to covert to this to the format yyyy-mm-dd for (SQLite usage). How could I achieve this?
UPDATE Table_Name
SET Column_Name = 'yyyy-mm-dd' format
I have tried substr, ltrim, rtrim (None of this work for my case).
My data are dynamic.
Sample
Column_Name
6/1/2004
06/25/2004
7/1/2003
6/1/2004
6/1/2004
09/19/2003
09/30/2003
09/30/2003
09/30/2003
09/30/2003
The Goal: Extract only month from this Column (Without displaying unnecessary stuff)
Thank you.
The syntax for extracting a specific date element from a date field is to use strftime.
SELECT strftime('%m', Column_Name) AS month which is your second question. For reconstituting the date data you could use (at least in JavaScript) substr to split the date out then format it as you require. Also see this post:Get month from DATETIME in sqlite

How can I convert datetime to date format in SQLite?

I want to show a date in DD-MM-YYYY format in a datagrid. By default, SQLite stores the data in date-time format. So how can I convert date-time format to date format in flex by using SQLite?
You can use strftime, from Date And Time Functions.
Example:
SELECT strftime('%d-%m-%Y', 'now')
output:
10-06-2010
Look up Java until Date. It has methods to convert and is supported in SQLite. However it is mostly deprecated and replaced with Calender.

Resources