|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
Вот, понадобилось сделать в SQL дату из года, месяца и числа. Что-то ничего путного в голову не приходит. Подкажите как лучьше. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 12:06 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
Может Вы имели ввиду это : declare @Y int,@M int,@D int,@tmpDate nvarchar(500),@myDate as datetime set @Y=2002 Set @M=11 set @D=12 set @tmpDate=cast(@Y as nvarchar(50))+'-'+cast(@m as nvarchar(500))+'-'+cast(@d as nvarchar(500)) set @myDate=cast(@tmpdate as datetime) select @mydate ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 12:15 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
Или так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 13:13 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
У меня сделано так Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Но теперь, возможно, сделаю так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Хотя хрен его знает, что лучше. Поэтому наверное сделаю UDF DATESERIAL() и буду ждать совета Glory :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 14:29 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
Я бы остановился на: set @date = convert(datetime,convert(varchar,@year) + '.' + convert(varchar,@month) + '.' + convert(varchar,@day),102) ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 14:53 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
еще проще... Код: plaintext
работает всегда ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 15:05 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
2 MiCe. ага, а попробуйте так с 1 декабря или 11 января получится set @date = CAST('2002111' as datetime) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 15:23 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
тады ой.... чес гря ни когда не хранил в интегральных значениях.... хранил в строковых.... а они и склееваются правильно... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 16:24 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
set @date = CAST(convert(varchar,@year) + right("0"+convert(varchar(2),@month), 2) + right("0"+convert(varchar(2),@day), 2) as datetime) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2002, 16:26 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
Так бывает, что в массиве данных, нужно собрать дату из того что получилось в следствии какой-то математики. Например есть дата договора - 01.03.2020 И нужно от каких-то условий посчитать дату, когда договор перестанет быть действующим. Как правило это спустя сколько-то лет, но датой на 1 день меньше. То есть договор должен кончиться 28.02.2022 И вот чтобы 01.03.2020 - 1 = 29.02.2020 - разбирая дату на элементы, и потом прибавляя два года, собираем дату 29.02.2022. Но, и тогда Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Понятное дело, что вместо +2 можно отработать аккуратней функциями dateadd , либо сначала добавлять два года, а потом отнимать 1 день... но метод как он есть ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 00:45 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
SHKoder, есть такая функция eomonth - оперируете в своих выражениях месяцами, к результату применяете. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 01:47 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
SHKoder Понятное дело, что вместо +2 можно отработать аккуратней функциями dateadd , либо сначала добавлять два года, а потом отнимать 1 день... но метод как он есть ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 08:33 |
|
DateSerial в t-sql
|
|||
---|---|---|---|
#18+
а если на самом деле нужна функция, запрошенная автором темы, то это datefromparts ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 10:16 |
|
|
start [/forum/topic.php?fid=46&fpage=61&tid=1686179]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 139ms |
0 / 0 |