Sixthsense
Sixthsense

Reputation: 1975

SQL Syntax Error When Adding Convert Function

This works

SELECT 
    LEFT(DATENAME(DAY, GETDATE()), 3) + '-' +
    LEFT(DATENAME(MONTH, GETDATE()), 3) + ' ' + '-' +
    RIGHT('00' + CAST(YEAR(GETDATE()) AS VARCHAR), 2)

This also works

SELECT CONVERT(TIME(0), GETDATE())

But when I combine both then I get an error

SELECT 
    LEFT(DATENAME(DAY, GETDATE()), 3) + '-' +
    LEFT(DATENAME(MONTH, GETDATE()), 3) + ' ' + '-' +
    RIGHT('00' + CAST(YEAR(GETDATE()) AS VARCHAR), 2) + ' ' 
    CONVERT(TIME(0), GETDATE())

Upvotes: 0

Views: 61

Answers (2)

Gordon Linoff
Gordon Linoff

Reputation: 1270463

This doesn't answer your question, but your first query is overcomplicated. I don't understand the date format, but whatever you need, this is a simpler method:

SELECT DATENAME(DAY, GETDATE()) + '-' +
       LEFT(DATENAME(MONTH, GETDATE()), 3) + ' -' +
       RIGHT(DATENAME(YEAR, GETDATE()), 2)

Notes:

  • The DAY component is never more than 2 characters, so LEFT(. . . , 3) is unnecessary.
  • ' ' + '-' can be simplified to ' -'.
  • You can use DATENAME() on the year as well.

Upvotes: 1

Fahmi
Fahmi

Reputation: 37473

You can try below - you need to add + operator and also cast it to varchar()

SELECT LEFT(DATENAME(Day,GETDATE()),3) + '-' +
LEFT(DATENAME(MONTH,GETDATE()),3) + ' ' + '-' +
RIGHT('00' + CAST(YEAR(GETDATE()) AS VARCHAR),2) + ' ' +
cast(convert(time(0),getDate()) as varchar(10))

Upvotes: 1

Related Questions