Мені потрібно отримати попередній місяць і рік, коли він вводиться. Отже, якщо користувач напише 201412, то він має повернутися 201411. Якщо вони вводять 201501, то він має повернутися до 201401.
Відповіді:
0 для відповіді № 1У SQL Server
DECLARE @dateAsNumber VARCHAR(8);
SET @dateAsNumber = "198705";
DECLARE @DateConvertedFromNumber DATETIME;
SELECT @DateConvertedFromNumber = CONVERT (DATETIME, CONVERT(CHAR(8), @dateAsNumber
+ "01"))
SELECT LEFT(CONVERT(VARCHAR, DATEADD(YEAR, -1,
@DateConvertedFromNumber), 112),
6) AS "Year Before"
SELECT LEFT(CONVERT(VARCHAR, DATEADD(MONTH, -1,
@DateConvertedFromNumber), 112),
6) AS "Month Before"
0 для відповіді № 2
Швидкий спосіб зробити це на базі даних SQL Serverполягає в тому, щоб створити елемент дати з вашого рядка, перетворити його в тип дат, потім скористатись датою дати функції та додайте -1 місяць (якщо ви хочете відняти один місяць)
Подобається це:
select DATEADD(MONTH,-1,CAST(LEFT(201401,4)+"-"+RIGHT(201401,2)+"-01" AS DATE))
Розбиті кроки:
- Отримайте рік, вибравши 4 лівого краю
- Отримайте місяць, вибравши 2 праві символи
- Додайте розділювачі "-" та 01 з попередніми двома елементами, щоб отримати рядок з правильним форматом для перетворення
- Перетворіть рядок у тип дат, щоб увімкнути операції дати
- Використовуйте функцію dateadd, щоб додати елемент дати до -1 місяця
- Пальці перейшли на корисний вхід, який не зніме ваш код