Showing posts with label SQL. Show all posts
Showing posts with label SQL. Show all posts

Monday, 17 January 2022

How to convert YYYYMMDD INT to DATETIME in SQL Server? Example

 You can convert it directly with the CONVERT function by using the style 112 = ISO = yyyymmdd:

DECLARE @date int;

SET @date = 20220701



SELECT CONVERT(datetime, CONVERT(varchar(8), @date), 112)

SELECT CONVERT(datetime, '20070701', 112)

You can get this error Arithmetic overflow error converting expression to data type datetime.
that error came because we were comparing a datetime with int without converting later to datetime.

like
X.PriceDt < A.PrimaryDate

this will fix this
X.PriceDt < CONVERT(datetime, CONVERT(varchar(8), A.PrimaryDate), 112))


How to solve Arithmetic overflow error converting expression to data type datetime


Arithmetic overflow error converting expression to data type datetime.

SELECT CONVERT(datetime, 23232322, 112)


Arithmetic overflow error converting expression to data type datetime.

SELECT CONVERT(datetime, '23232322', 112)

 
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

SELECT CONVERT(datetime, '', 112)
1900-01-01 00:00:00.000


SELECT CONVERT(datetime, NULL, 112)
NULL


SELECT CONVERT(datetime, '-9999', 112)

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

"Arithmetic overflow error converting expression to data type datetime." also come when we try to convert a integer thinking its string

SELECT * from TABLE where DATE >= 20140101 < 20150101


here I have forgotten single quotes which results in this error.


Monday, 3 August 2015

What are the difference between Having and Where Clause?

Here are some useful difference between WHERE and HAVING clause in SQL :

1) WHERE clause can be used with SELECT, UPDATE and DELETE statements and  clauses but HAVING clause can only be used with SELECT statements.

e.g.

SELECT * FROM Employee WHERE EmployeeId=3

will print details of employee with id = 3.