Формат YYYY-MM-DD
недвусмыслен, что означает, что SQL Server не будет путать месяц и день при преобразовании строкового значения в DATETIME
. (Я никогда не испытывал проблемы с неявным преобразованием, используя этот формат, используя четырехзначный год.)
«Самый безопасный» (и наиболее удобный) способ хранения значений даты в SQL Server - использовать DATETIME datatype.
Используйте функцию CONVERT
для явного указания форматов ввода и вывода при преобразовании между DATETIME
и строками.
Документация по SQL Server 2005 в стиле CONVERT :
http://msdn.microsoft.com/en-us/library/ms187928 (SQL.90) .aspx
Чтобы преобразовать строковое представление в datatype DATETIME:
select CONVERT(datetime, '2009-06-03', 20)
Первым аргументом является тип данных для преобразования в, второй аргумент - это преобразованное выражение, третьим аргументом является стиль .
( style 20 is ODBC Канонический формат = 'YYYY-MM-DD HH:MI:SS'
(24-часовой режим)
[FOLLOWUP]
Чтобы преобразовать выражение DATETIME (например, getdate () в VARCHAR в формате 'YYYY-MM-DD'
:
select CONVERT(varchar(10), getdate(), 20)
Обратите внимание, что указание varchar (10) дает вам только первые 10 ch (f15)
[/ FOLLOWUP]
Что касается форматов по умолчанию, это будет исследование. Мы избегаем проблем, вызванных форматами по умолчанию, определяя форматы.
Учитывая, что вы также хотите закрывать вкладки, новые строки и т.д., просто замените \s\s+
на ''
:
string = string.replace(/\s\s+/g, ' ');
Если вы действительно хотите закрыть только пробелы (а не закладки, новые строки и т.д.), сделайте это:
string = string.replace(/ +/g, ' ');
var string = "The dog has a long tail, and it is RED!";
var replaced = string.replace(/ +/g, " ");
Или если вы также хотите заменить табуляции:
var replaced = string.replace(/\s+/g, " ");
var myregexp = new RegExp(/ {2,}/g);
str = str.replace(myregexp,' ');
. Это одно решение, хотя оно будет нацелено на все пробельные символы:
"The dog has a long tail, and it is RED!".replace(/\s\s+/g, ' ')
"The dog has a long tail, and it is RED!"
Edit : Это, вероятно, лучше, так как оно нацелено на пробел, за которым следует 1 или более пробела:
"The dog has a long tail, and it is RED!".replace(/ +/g, ' ')
"The dog has a long tail, and it is RED!"
Альтернативный метод:
"The dog has a long tail, and it is RED!".replace(/ {2,}/g, ' ')
"The dog has a long tail, and it is RED!"
Я не использовал /\s+/
сам по себе, так как он заменяет пробелы, которые многократно занимают 1 символ, и может быть менее эффективным, так как он нацелен на большее, чем необходимо.
Я не проводил глубокой проверки ни одной из них, так что lmk, если есть ошибки.
Также, если вы собираетесь делать замену строки, не забудьте переназначить переменную/свойство на ее собственную замену, например:
var string = 'foo'
string = string.replace('foo', '')
Используя jQuery. prototype.text:
var el = $('span:eq(0)');
el.text( el.text().replace(/\d+/, '') )
var str = "The dog has a long tail, and it is RED!";
str = str.replace(/ {2,}/g,' ');
EDIT: Если вы хотите заменить все виды пробельных символов, наиболее эффективным способом будет:
str = str.replace(/\s{2,}/g,' ');
Так как вы, кажется, заинтересованы в исполнении, я профилировал их с помощью поджигателя. Вот результаты, которые я получил:
str.replace( / +/g, ' ' ) -> 380ms
str.replace( /\s\s+/g, ' ' ) -> 390ms
str.replace( / {2,}/g, ' ' ) -> 470ms
str.replace( / +/g, ' ' ) -> 790ms
str.replace( / +(?= )/g, ' ') -> 3250ms
Это на Firefox, работает 100k замена строк.
Я призываю вас сделать свои собственные тесты профилирования с помощью Firebug, если вы думаете, что производительность является проблемой. Люди, как известно, плохо предсказывать, где узкие места в их программах лежат.
(Также обратите внимание, что панель инструментов разработчика в IE 8 имеет встроенный профилировщик - возможно, стоит проверить, какова производительность в IE).