У меня есть поле таблицы AccID
, где мне нужно объединить Name
с Date
как «MyName-010415» в SQL-запросе.Формат даты с двумя цифрами в SQL
Формат даты: 01-04-2015
или 01/04/2015
. Но я хочу показать его как 010415
.
У меня есть поле таблицы AccID
, где мне нужно объединить Name
с Date
как «MyName-010415» в SQL-запросе.Формат даты с двумя цифрами в SQL
Формат даты: 01-04-2015
или 01/04/2015
. Но я хочу показать его как 010415
.
Для части даты, чтобы получить формат, который вы хотите, попробуйте это:
SELECT
RIGHT(REPLICATE('0', 2) + CAST(DATEPART(DD, accid) AS VARCHAR(2)), 2) +
RIGHT(REPLICATE('0', 2) + CAST(DATEPART(MM, accid) AS VARCHAR(2)), 2) +
RIGHT(DATEPART(YY, accid), 2) AS CustomFormat
FROM yourtablename
...
DATEPART(DD, accid)
даст вам день часть и то же самое для mm
и yy
даст вам месяц и год частей. Затем я добавил функции RIGHT(REPLICATE('0', 2) + CAST(... AS VARCHAR(2)), 2)
, чтобы добавить начальный ноль, вместо 1
будет 01
.
Как @bernd-linde предложил, вы можете использовать эту функцию, чтобы сцепить его с названием части, как:
concat(Name, ....) AS ...
Также вы можете просто SELECT
или UPDATE
в зависимости от что ты ищешь.
Как в @bernd-lindefiddle.
Вы на правильном пути, но я думаю, что OP хочет заполнить AccID, а не извлечь из него. Взгляните на этот [SQLFiddle] (http://sqlfiddle.com/#!6/eeb1c/3), который расширяет ваш ответ с помощью этого требования. (Не хотел публиковать как новый ответ, так как он повторно использует ваш код) –
@BerndLinde - Спасибо, но OP сказал, что ему нужно конкатенировать в SQL-запросе, поэтому я понимаю, что у него есть два столбца, одно - это имя, а другое столбец даты, поэтому он может просто добавить часть имени и '-' перед столбцом customFormat из моего запроса. Спасибо за ваше предложение, я добавлю. –
Спасибо за помощь Guys :) – Abdul
Я не уверен, какой язык вы используете. Возьмем php в качестве примера.
$AccID = $name.'-'.date('dmy');
ИЛИ, прежде чем сохранить этот формат данных на дату, прежде чем вставить данные в базу данных .. или вы можете написать триггер на вставку.
Язык SQL, как указано в вопросе с «в SQL-запросе» :) –
Вы можете написать триггер перед вставкой данных. – m82amjad
Для изменения формата вашей даты и CONCAT вам необходимо использовать DATE_FORMAT, чтобы указать имя и дату.
Пример:
SELECT CONCAT(name, '-', DATE_FORMAT(field,'%m%d%y'))
FROM tbl
Какой тип столбца держит дату? Даты не имеют специального форматирования. Кроме того, какая версия SQL Server? – jpw
Избегайте хранить даты как varchar в базе данных. Если это не вариант, по крайней мере, избегать таких форматов, как 'ddMMyyyy' и' MMddyyyy', потому что они обычно вызывают проблемы с синтаксическим разбором. Например, в '01/04/2015', какая часть месяца? Я предполагаю, что '01' из-за разделителя'/'. Хотя в '01-04-2015' я предполагаю, что' 04' - это месяц (стиль европейской даты). – B0Andrew
Какие СУБД вы используете? (MySQL, SQL Server, Oracle, SQLite?) –