is it possible to explicity insert values in timestamp column of DB2 - sql

is it possible to explicity insert values in timestamp column of DB2? For example i have a date time value '2\11\2005 4:59:36 PM'. How to convert it to timestamp value in DB2?
Thanks in advance

Another way to specify insert into timestamp field:
insert into mytable (timestamp_field, ...) values ('2018-07-25-14.56.11.000000', ...)

INSERT INTO TimeStampTable(TIMESTAMPFIELD, ...)
VALUES ((TIMESTAMP(CAST('04.02.2005' AS VARCHAR(10)),'13:14:53')),...)

Related

Athena Date Partition Without Extra Bits

I have a table with a projected date partition (p_date) that I'm trying to insert values into. When i insert values into this table and specify a string value for the p_date it complains that I am attempting to insert a varchar into a timestamp column (fair). But when I convert the value to a timestamp and do the same insert it adds an unwanted millis value to the end of the timestamp.
-- ERROR varchar cannot be inserted into timestamp
INSERT INTO blah
(p_date)
VALUES
('2021-01-01 00:00:00');
-- Not error. But adds unwanted `.0` to s3 key
INSERT INTO blah
(p_date)
VALUES
(timestamp '2021-01-01 00:00:00');
Here is what that looks like in S3:
How can I insert rows into this table at the correct p_date partition without changing that field to a string or getting extra bits on the end?
Does your partition key have the type TIMESTAMP? In that case Athena will format the values as it formats timestamps. If you want it to format them as dates you can use the DATE type instead.

Dates inserting incorrectly - SQL

Dates are not inserting correctly to table, any explanation / solution?
create table test
(
ID bigint,
MarketOpen datetime
);
insert into test (ID, MarketOpen)
values (1, 2019-01-19-11-40-00);
select * from test;
Fiddle
Thats totally the wrong way to enter a date. SQL Server is treating your current syntax as a calculation e.g. 2019-01-19-11-40-00=1948 and then converting the number 1948 to a datetime. You need to use a formatted string e.g.
insert into #test (ID, EventId, MarketId, RaceDate, MarketOpen, HorseID)
values
(1, 123, 153722767, '2019-01-19 11:40:00', '2019-01-18 11:40:00', 34434);
Note: As mentioned by seanb its best practice to use a non-ambiguous format when specifying dates and the ISO format (yyyymmdd) is probably the best of these.

How do I insert datetime as just hh:mm:ss?

I'm trying to insert a time into at table.
"playTime" is the datetime value. I don't need the actual days for it.
Insert playTime values ('00:05:15:00') but it's giving me an error.
How can I solve this?
Thanks!
Use a time field instead of a datetime field. Or insert it with a date then ignore the date when you select it back out.
You cannot just insert time value into a datetime field. You definitely need to have datetime appended. If you are sure the entries to the field have to be of time, change the data type. If not append a default date (say 1900-01-01) and then insert it.
insert playTime values('1900-01-01 05:15:00')

sql insert into a table with computed columns

I have a table with 4 columns, say COLA,COLB,COLC,COLD. COLC and COLD are computed columns.
Suppose I want to insert a row into table, should the query be something like
insert into Table (COLA,COLB,COLC,COLD) values (1,2,'','')?
I know I can't insert into computed columns. But how can I add a row and keep the default computed columns as they are?
Thanks for any advice!
try this
INSERT INTO TABLE (COLA,COLB) values (1,2);
you dont need to provide the values even blanks for computed column. They get calculated automatically
Just specify the columns you want to insert values into:
insert into Table (COLA,COLB) values (1,2)
Just don't specify the calculated columns:
insert into Table (COLA,COLB) values (1,2)
Thank you all! I just got that out too! Previously I got errors that number of col don't match, because I missed a a column.

Covert a column of string dates

I have 2 columns in access that are saved as string dates yyyymmdd. I am linking the table to a oracle database and need to coveret the columns on insert to look like yyyy/mm/dd.
I am trying:
INSERT INTO TEST
(DATE) Values (20110818, To_DATE("YYYY/MM/DD"))
FROM TEST_DATE
I want to convert the entire column on insert from access into oracle
Try like this
INSERT INTO TEST
(DATE)
SELECT TO_DATE('20110818','YYYYMMDD')
FROM TEST_DATE