Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Кои настройки осигуряват формат за дата и час по подразбиране на SQL Server?

Недей така! Не използвайте низове вместо дати и не използвайте специфичен за културата формат на дата или дата и час, това е рецепта за катастрофа.

SQL Server няма "формат за дата", а само формати, които използва за преобразуване на дати към и от низове. Един от тях е по подразбиране, контролиран от сортирането на сървъра. Не можете нито да предполагате, нито трябва да разчитате на конкретно съпоставяне, така че трябва да избягвате преобразувания, когато е възможно. Освен това предаването на низова стойност може да попречи на SQL Server да използва индекси на колони с дати, тъй като ще трябва да преобразува низа в основния тип колона.

Много по-лесно и по-безопасно е да предавате дати като въведени с дата променливи или параметри. По този начин избягвате цялата бъркотия при преобразуването, от и към и избягвате атаки с инжектиране на SQL.

Няма причина да предавате низове вместо дати към сървъра. Всички клиенти на SQL Server (включително ADO.NET) ви позволяват да изпълнявате параметризирани заявки. ORMs като NHibernate и Entity Framework също генерират параметризирани заявки за въведени с дата колони.

Всеки път, когато трябва да създадете низов литерал, използвайте един от инвариантните формати като 20140913 или 2012-11-07T18:26:20

Можете да прочетете повече за това в Писане на международни T-SQL отчети



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PIVOT с тип данни varchar

  2. Групово вмъкване с параметър за име на файл

  3. Изтриване на дублиращи се редове в SQL Server

  4. Използване на функцията Patindex().

  5. Проверете дали даден обект е съхранена процедура, като използвате OBJECTPROPERTY() в SQL Server