diff --git a/src/languages/transactsql/transactsql.formatter.ts b/src/languages/transactsql/transactsql.formatter.ts index d94f51a5a..497a27f9f 100644 --- a/src/languages/transactsql/transactsql.formatter.ts +++ b/src/languages/transactsql/transactsql.formatter.ts @@ -246,7 +246,10 @@ export const transactsql: DialectOptions = { reservedDataTypes: dataTypes, reservedFunctionNames: functions, nestedBlockComments: true, - stringTypes: [{ quote: "''-qq", prefixes: ['N'] }], + stringTypes: [ + { quote: "''-qq", prefixes: ['N'] }, + '{}' + ], identTypes: [`""-qq`, '[]'], identChars: { first: '#@', rest: '#@$' }, paramTypes: { named: ['@'], quoted: ['@'] }, diff --git a/test/transactsql.test.ts b/test/transactsql.test.ts index f78d0e5bd..a620489c5 100644 --- a/test/transactsql.test.ts +++ b/test/transactsql.test.ts @@ -227,4 +227,22 @@ describe('TransactSqlFormatter', () => { Zone `); }); + + // Issue #877 + it('allows the use of the ODBC date format', () => { + const result = format( + `WITH [sales_query] AS (SELECT [customerId] FROM [segments].dbo.[sales] WHERE [salesdate] > {d'2024-01-01'})` + ); + expect(result).toBe(dedent` + WITH + [sales_query] AS ( + SELECT + [customerId] + FROM + [segments].dbo.[sales] + WHERE + [salesdate] > {d'2024-01-01'} + ) + `); + }); });