powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразование даты.
19 сообщений из 19, страница 1 из 1
Преобразование даты.
    #39683747
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня. Помогите пожалуйста советом. Как преобразовать дату в формат "03-Mar-2018"?
У меня есть запрос, который объединяет кучу таблиц, но у всех разные форматы дат, а конечная программа, которая обрабатывает мой запрос воспринимает именно вот тот дебильный формат, который я описала выше.
В самой программе я использовала команду
Код: sql
1.
select sampleid, acqdate(strcat(DAY(DATEVALUE([loaddate]) from CORP


но в этом случае штука не срабатывает и SQL ругается. Точнее SQL-менеджемент не понимает, а программа ругается.
Самое интересное что если я жестко прописываю даты в скрипте - все работает идеально, но как только используются эти даты в фильтре, чтобы пользователь мог их менять - ничего не показывает.
Есть ли команда которая позволит трансформировать дату любого формата в вид "03-Mar-2018"?

На всякий случай скрипт ниже
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
SELECT CASE ROW_NUMBER() OVER(PARTITION BY pp.PROJECTCODE ORDER BY a.holeid)
           WHEN 1
           THEN pp.PROJECTCODE
       END AS x_project,
       CASE ROW_NUMBER() OVER(PARTITION BY pp.DESCRIPTION ORDER BY a.holeid)
           WHEN 1
           THEN pp.DESCRIPTION
       END AS x_project_desc,
       --pp.PROJECTCODE,pp.DESCRIPTION,
       a.HOLEID, 
       a.DrillLenght, 
       b.SendSample, 
       c.assay, 
       TakenSample, 
       [Depth_drill], 
       totalcut.Totalcutting, 
       geo2.toTOTAL2
FROM PROJECT pp
     LEFT JOIN
(
    SELECT dd.PROJECTCODE AS x_project, 
           dd.HOLEID, 
           SUM(CAST((CASE
                         WHEN name = 'totaldrilldepth'
                         THEN value
                     END) AS FLOAT)) AS DrillLenght
    FROM drillingdetail dd
    WHERE CAST([DRILLINGDATE] AS DATE) BETWEEN '20-jul-2018' AND '06-aug-2018'
    GROUP BY PROJECTCODE, 
             HOLEID
) a ON pp.PROJECTCODE = a.x_project
     LEFT JOIN
(
    SELECT s.PROJECTCODE AS x_project, 
           s.HOLEID, 
           COUNT(sd.sampleid) AS SendSample
    FROM SAMPLEDESPATCH sd
         LEFT JOIN DESPATCHSEND ds ON sd.DESPATCHNO = ds.DESPATCHNO
         LEFT JOIN sample s ON s.SAMPLEID = sd.SAMPLEID
    WHERE CAST([senddate] AS DATE) BETWEEN '01-aug-2018' AND '06-aug-2018'
    GROUP BY PROJECTCODE, 
             HOLEID
) b ON pp.PROJECTCODE = b.x_project
       AND a.HOLEID = b.HOLEID
     LEFT JOIN
(
    SELECT projectcode AS x_project, 
           holeid, 
           COUNT(sss) assay
    FROM
    (
        SELECT DISTINCT 
               s.sampleid AS sss, 
               PROJECTCODE, 
               HOLEID
        FROM cORPSAMPLEASSAY c
             LEFT JOIN sample s ON s.SAMPLEID = c.SAMPLEID
        WHERE CAST([LOADDATE] AS DATE) BETWEEN '01-aug-2018' AND '06-aug-2018'
    ) abc
    GROUP BY abc.PROJECTCODE, 
             abc.HOLEID
) c ON pp.PROJECTCODE = b.x_project
       AND b.HOLEID = c.HOLEID
     LEFT JOIN
(
    SELECT ss.PROJECTCODE AS x_project, 
           holeid, 
           COUNT(ts.sampleid) AS TakenSample
    FROM SAMPLEDETAILS ts
         LEFT JOIN sample ss ON ss.SAMPLEID = ts.SAMPLEID
    WHERE CAST((CASE
                    WHEN name = 'SampDateTaken'
                    THEN value
                END) AS DATE) BETWEEN '01-aug-2018' AND '06-aug-2018'
    GROUP BY ss.PROJECTCODE, 
             ss.HOLEID
) t ON pp.PROJECTCODE = t.x_project
       AND t.HOLEID = a.HOLEID
     LEFT JOIN
(
    SELECT projectcode AS x_project, 
           holeid, 
           SUM([Depth_dh]) AS [Depth_drill]
    FROM
    (
        SELECT sample.projectcode, 
               sample.holeid, 
               ROUND(MAX(sampto) - MIN(SAMPFROM), 2) AS [Depth_dh]
        FROM sample
             LEFT JOIN SAMPLEDETAILS ON sample.SAMPLEID = SAMPLEDETAILS.sampleid
        WHERE CAST((CASE
                        WHEN name = 'SampDateTaken'
                        THEN value
                    END) AS DATE) BETWEEN '01-aug-2018' AND '06-aug-2018'
        GROUP BY sample.sampleid, 
                 projectcode, 
                 HOLEID
    ) zz
    GROUP BY projectcode, 
             HOLEID
) z ON pp.PROJECTCODE = z.x_project
       AND z.holeid = b.HOLEID
     LEFT JOIN
(
    SELECT DISTINCT 
           holeid, 
           projectcode
    FROM holelocation
) hl ON hl.HOLEID = a.HOLEID
     LEFT JOIN
(
    SELECT DISTINCT 
           holeid, 
           Totalcutting = MAX(geolto) - MIN(geolfrom)
    FROM GEODETAILS
    WHERE name = 'Cutting_Date'
          AND CAST(VALUE AS DATE) BETWEEN '01-aug-2018' AND '06-aug-2018'
    GROUP BY holeid
) totalcut ON totalcut.HOLEID = hl.HOLEID
     LEFT JOIN
(
    SELECT holeid hole1, 
           ROUND((MAX(geolto) - MIN(geolfrom)), 2) toDAY1
    FROM GEODETAILS
    WHERE value BETWEEN '01-aug-2018' AND '06-aug-2018'
          AND name NOT LIKE '%core%'
          AND name NOT LIKE '%rqd%'
          AND name NOT LIKE '%cut%'
    GROUP BY holeid, 
             value
) geo1 ON geo1.hole1 = hl.HOLEID
     LEFT JOIN
(
    SELECT holeid hole2, 
           MAX(geolto) toTOTAL2
    FROM GEODETAILS
    WHERE name = 'Lith_RockName'
    GROUP BY holeid
) geo2 ON geo2.hole2 = hl.HOLEID
WHERE a.x_project IS NOT NULL
      OR b.x_project IS NOT NULL
      OR c.x_project IS NOT NULL
      OR --x.x_project is not null or
      t.x_project IS NOT NULL
      OR z.x_project IS NOT NULL
ORDER BY pp.DESCRIPTION;






Кажется у меня кривые руки...
...
Рейтинг: 0 / 0
Преобразование даты.
    #39683749
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

Код: sql
1.
select convert(varchar,getdate(),106)


в таком формате не подойдёт?
06 Aug 2018
...
Рейтинг: 0 / 0
Преобразование даты.
    #39683790
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Викт.katish444,

Код: sql
1.
select convert(varchar,getdate(),106)


в таком формате не подойдёт?
06 Aug 2018
ну, тогда уж так :
Код: sql
1.
select replace(convert(varchar(20),getdate(),106),' ','-')
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684043
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad, спасибо большое! Сейчас попробую
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684044
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad, блин, в менеджементе все так классно сработало, а гребанная БД не понимает команду
Код: sql
1.
replace

...
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684052
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,
что значит "не понимает"?

Приведите код и текст ошибки
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684066
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Викт., это проблема программы БД в которой я работаю. Она не знает это слово, даже цветом не выделяет. Придется придумывать что-то другое...
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684129
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

а что за программа, где вы можете писать код, который она выборочно транслирует в сиквел?
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684155
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

мабуть, у нее Sybase?
синтаксис у них родственный, тока вместо replace там str_replace
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684156
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444,

в replace все буквы английские? Точно?
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684168
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительkomrad,

мабуть, у нее Sybase?
синтаксис у них родственный, тока вместо replace там str_replace

а не, судя по другим постам, это какая-то софтина acQuire, которая, вероятно, претендует на кросс-платформенность
В связи с чем, синтаксис может транслироваться в СУБД не напрямую, а преобразовываться в зависимости от СУБД.

Мельком нагуглить ничего конкретного не удалось, доки походу доступны только по подписке.
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684267
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
katish444komrad, блин, в менеджементе все так классно сработало, а гребанная БД не понимает команду
Код: sql
1.
replace

...

ну, хорошо, давайте попробуем left/right ;)

Код: sql
1.
2.
3.
select left(convert(varchar(20),getdate(),106),2)+'-'
	+left(right(convert(varchar(20),getdate(),106),8),3)+'-'
	+right(convert(varchar(20),getdate(),106),4)
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684275
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительkomrad,

мабуть, у нее Sybase?
синтаксис у них родственный, тока вместо replace там str_replace
ну, тогда бы "SQL-менеджемент" бы к нему не подключился
полагаю, что это так названа SQL Server Management Studio (SSMS)
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684353
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradkatish444komrad, блин, в менеджементе все так классно сработало, а гребанная БД не понимает команду
Код: sql
1.
replace

...

ну, хорошо, давайте попробуем left/right ;)

Код: sql
1.
2.
3.
select left(convert(varchar(20),getdate(),106),2)+'-'
	+left(right(convert(varchar(20),getdate(),106),8),3)+'-'
	+right(convert(varchar(20),getdate(),106),4)



Научи лучше, страдалицу вьюшки писать.
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684564
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,
база данных acQuire-4, она на SQL, но он у нее какой-то урезанный, но при этом есть свои команды...
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684565
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,
КЛАСС!!!!!
Спасибо большущее
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684566
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,
вьюшки это что?
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684567
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посетитель,

да, вы совершенно правы. БД на SQL, но при этом у нее куча своих команд, например acqdate(), которые конечно SQLменеджемент не знает, и наоборот.
у них кроме рекламы больше ничего и нет, все за деньги...
Код: html
1.
https://www.acquire.com.au/
...
Рейтинг: 0 / 0
Преобразование даты.
    #39684568
katish444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РЕБЯТА! СПАСИБО ВСЕМ ОГРОМНОЕ!

получилось
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразование даты.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]