Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/104: Рейтинг темы: голосов - 104, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 34

CHECK для даты и номера телефона в SQL MS 2014

22.03.2016, 21:58. Показов 20083. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне необходимо ограничить дату с 2016 по 2045. Верно ли я написал?
SQL
1
DATA DATE CHECK(data>'2016.01.01' AND data<'2045.01.01')
Для номера телефона необходимо чтобы максимальное число цифр было 20 (+, код страны и 11 цифр номера).
SQL
1
phone VARCHAR(20) CHECK(phone LIKE(+'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
Не уверен что правильно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2016, 21:58
Ответы с готовыми решениями:

Изменить формат даты sql express 2014
Приветствую. Когда пишу insertы на боевых серваках формат даты &quot;yyyy-mm-dd&quot;, а когда пишу на тестовый приходиться выставлять...

Маска для даты и номера телефона
Помогите, пожалуйста. Пишу программу и возник вопрос. Есть БД в Access, там есть такие столбцы как дата и номер телефона. Подскажите, как...

При вводе даты рождения и номера телефона в структуру выдает неверные данные
#pragma hdrstop #pragma argsused #include &lt;tchar.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include...

6
 Аватар для CyberAlfred
63 / 62 / 14
Регистрация: 16.12.2012
Сообщений: 606
23.03.2016, 08:35
SQL
1
2
SELECT * FROM TABLE
WHERE tbl_date >= '2016.01.01' AND  tbl_date <= '2045.01.01'
но лучше так
SQL
1
2
SELECT * FROM TABLE
WHERE tbl_date BETWEEN '2016.01.01' AND  '2045.01.01'
Лучше сделайте переменную типа int и напишите проверку вводимого числа на условие от 000001 до 999999 и если проверку проходит, то в начале прилепите +7
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
23.03.2016, 09:43
Цитата Сообщение от VIJIS Посмотреть сообщение
по 2045.
А ограничили по 2044.

Добавлено через 8 минут
Цитата Сообщение от VIJIS Посмотреть сообщение
SQL
1
LIKE(+'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
По моим представлениям, это ограничивает ввод строками длины РОВНО 20 символов после знака "+". Если допустимы строки и меньшей длины - то нужно их все через OR перечислить.

SQL
1
2
3
4
phone LIKE('+[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') 
OR phone LIKE('+[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
OR phone LIKE('+[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
OR phone LIKE('+[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
и т.д.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
23.03.2016, 10:11
T-SQL
1
data>='2016' AND data<'2046'
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
23.03.2016, 10:26
iap, и давно даты стали текстовыми?

Добавлено через 9 минут
SQL
1
DATEPART(YEAR,DATA) BETWEEN 2016 AND 2045
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
23.03.2016, 11:14
Цитата Сообщение от texnik-san Посмотреть сообщение
iap, и давно даты стали текстовыми?

Добавлено через 9 минут
SQL
1
DATEPART(YEAR,DATA) BETWEEN 2016 AND 2045
Уже изобрели способ задавать даты прямо типом DATETIME?

Читаем:

Использование данных даты и времени

Строковый формат без разделителей

Цитата Сообщение от Оттуда
Строка только из четырех разрядов интерпретируется как год. Число и месяц принимают значение 1 января.
Накладывая ограничения на функцию от поля, а не на само поле,
вы не даёте возможности серверу использовать индексы по этому полю, если они есть.
Как говорили в школе, "садись, два!"

Хотя, в CONSTRAINT CHECK индекс и неактуален, но лучше помнить про SARGable предикаты всегда.
Довести до автоматизма, так сказать.
1
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
23.03.2016, 12:00
Цитата Сообщение от iap Посмотреть сообщение
Сообщение от Оттуда
Строка только из четырех разрядов интерпретируется как год. Число и месяц принимают значение 1 января.
Обалдеть. Спасибо за ссыль, в книжках такого не написано.

Добавлено через 16 минут
Цитата Сообщение от iap Посмотреть сообщение
Уже изобрели способ задавать даты прямо типом DATETIME?
По крайней мере одну дату я точно могу задать именно такого типа

SQL
1
GETDATE()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2016, 12:00
Помогаю со студенческими работами здесь

Check для даты
Как можно реализовать ограничение Check (столбец &lt;= Текущая дата)?

Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад
Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и...

Работает ли ADO для Delphi 7 MS SQL 2014
При попытке подключиться к базе данных на MS SQL 2014 через ADOConnection Delphi 7 выходит ошибка &quot;Не удалось открыть соединение с...

Microsoft SQL CAL 2014 для чего нужен?
покупаем Microsoft SQL Server Standard Edition 2014 цена еще приемлемая, но вот Microsoft SQL CAL 2014, Цена на 40 пользователей. до 300...

Скрипт для отображения номера телефона
Как написать номер телефона чтобы это было красиво и есть ли такой скрипт?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru