SQL lite in Azure CAST(date AS datetime) - sqlite

I want to fix my date column from this: 2009-01-09T00:00:00
To this: 2009-01-09
Im running it on SQL lite in Azure ML
I tried this code:
select CAST(date AS datetime)
from t1;
But all it returns is 2009
I also tried this code:
select CAST(date AS date)
from t1;
But with the same result : 2009 only
I would prefer to use CAST and not CONVERT (or similar)
What is the simplest way to accomplish this?

SQLite3 does not have a DATETIME type, so it is interpreted as NUMERIC (please see https://sqlite.org/datatype3.html for an explanation), using CAST on your string will result as you have seen in its being scanned as an integer. To get what you want, use the substr(X,Y,Z) function (see https://sqlite.org/lang_corefunc.html#substr ).

Related

Convert integer column to date column using sqlite query

I am using SQLite.
In my database, I have a integer column value like 20050819. I would like to convert this as date column as like 2005-08-19.
I can achieve my requirement when using the function CONVERT(columnName, DATETIME) in MySQL server. But I need the same result in SQLite.
Is this possible in SQLite query?
You basically have to break apart the date:
select printf('%4d-%02.2d-%02.2d',
columnname/10000, columnname%10000/100, columnname%100)
from tablename;
P.S.
If you have the choice, you will be far better off storing the date in ISO standard format ('YYYY-MM-DD') in the database in the first place.

How To Insert a Date using oracle form

i use oracle forms 11g. And i pass To_Date(sysdate,'dd-mm-yyyy') that is inserted to the data base and data type of the column is date. but it is inserted as 22-10-0015 instead of 22-10-2015 can you help me?
i use procedure to insert data s and oracle from button click.i need to insert dd-mm-yyyy format to the data base how to do this?
sysdate is already a date, so it doesn't make sense to call to_date() for it. You are implicitly converting it to a string, and then explicitly back to a date. The implicit step is using your Forms session's NLS_DATE_FORMAT, which is presumably DD-MM-YY from the symptoms, so you're really doing:
to_date(to_char(sysdate,'dd-mm-yy'),'dd-mm-yyyy')
The implicit string version would show the year as 15 if you ran that on its own; and the explicit conversion correctly sees that as 0015 rather than assuming 2015.
You should just pass sysdate directly; but if you're trying to strip out the time so it shows as midnight, you can use the trunc() function:
trunc(sysdate)
SYSDATE is already a DATE. You don't need to use TO_DATE to convert it into a DATE.
What it's happening is that you're converting SYSDATE into a string and you're using the YYYY mask which will translate any year over 2000 into the 00's (that's why 2015 is being converted to the year 15). If you use the RRRR mask you will get the expected result:
TO_DATE(SYSDATE,'dd-mm-rrrr')
However, this is not a good idea as it's unnecesary and could fail if the NLS_DATE_FORMAT model used for the implicit conversion to string doesn't match.

ASP + SQL Server + NOW() = Headache

I'm currently using Visual Web Developer 2010 (Express) and I'm trying to use the NOW() command within a SQL query to allow date selection but it doesn't work at random times and I'm lost to why it does this.
I'll give some examples, I'm from the UK my machine is set to standard time (sync with time.windows.com) and everything is fine but when I use the = NOW() it works but when it doesn't it seems the input date is mixed up, example below:
Currently my table is set as follows:
Table crew_example:
Column 1 : Date (In standard SQL time, so YYYY-MM-DD)
Column 2 : Initial
Column 3 : Surname
etc
My SQL query is as follows:
SELECT Date,
Initial,
Surname,
FROM crew_example
WHERE ( Date = { fn NOW() } )
ORDER BY Date
This function normal work and is currently working with another SQL query that users BETWEEN (DATE = { fn NOW() } + 1) AND { fn NOW() } + 6) (Which I had trouble when I set this up before but it magically fixed itself and never thought anything about it).
The date output when I hardcode doesn't work if I use today's date 27/11/2014 but works when I "americanise" it to 11/27/2014 even though the output comes in UK format 27/11/2014 00:00:00
Is there a way to unify the dates? I'm new to SQL queries so not use if I can use the NOW() command but change it to NOW() in format MM/DD/YYYY instead of what looks to be NOW() using my UK date type.
EDIT: Seems CURRENT_DATE may work....but any ideas if this is the best way?
Regards
Jamie
In T-SQL I would use something like this:
Where Date between cast(getdate() as date) and cast(dateadd(d,1,getdate()) as date)
I've never used a "pure" date column, so I'm not sure if you need to get rid of the time with the cast.
For dateadd() see: DATEADD (Transact-SQL)
For cast() see: CAST and CONVERT (Transact-SQL)

Date conversion in Oracle using pl sql?

I am transferring data from oracle to sql. I wrote a query to get the previous date from oracle Table but what do I need to do if I want data from 15 DEC 2013?
SELECT CLOSED,RESOLVED,ACTION FROM
ADMIN.Data where MODIFIED_DATE >=ADMIN.PKGTIMECONVERSION.TO_TO_GMTU(sysdate-1)
I have never done this type of conversion before.
Without knowing what the package does or what this really has to do with SQL Server (not 'SQL', which is a language not a product), does this do what you want?
SELECT CLOSED,RESOLVED,ACTION FROM
ADMIN.Data where MODIFIED_DATE >=
ADMIN.PKGTIMECONVERSION.TO_TO_GMTU(DATE '2013-12-15')
Or if you don't like the ANSI notation you can use TO_DATE('15-DEC-2013', 'DD-MON-YYYY') instead.

sqlite DATETIME formatting and ordering, what am I doing wrong?

I have a number of "DATETIME's" for the following form e.x.:
2014-01-15T19:30:00-0800
I am successfully inserting them into an sqlite table that I created with the following statement:
CREATE TABLE STUFF(id unique,date_time DATETIME)
When I query using the statement below I get all the dates I inserted back but not ordered.
SELECT * FROM STUFF ORDER BY DATETIME(date_time) DESC;
I'm guessing this is a formatting issue but I'm not sure. Can anyone spot what I'm doing wrong?
This is not a date format supported by SQLite;
a time zone indicator must have the form ±HH:MM:
> SELECT DATETIME('2014-01-15T19:30:00-0800');
> SELECT DATETIME('2014-01-15T19:30:00-08:00');
2014-01-16 03:30:00

Resources