NIRMAL90 Ответов: 2

Как изменить формат длинной даты на формат короткой даты в хранимых процедурах SQL


я сделал хранимые процедуры в sql server 2008 я хочу изменить формат длинной даты на короткую дату??

Пожалуйста, помогите, это нужно срочно.. проект находится в процессе

Что я уже пробовал:

CREATE PROCEDURE [dbo].[OnelinePODate]
AS
BEGIN
	Select Main.Ibill_no,
       Left(Main.PoNo,Len(Main.PoNo)-1) As "PoNo",Left(Main.PoDt,Len(Main.PoDt)-1) As "PoDt"
From
    (
        Select distinct ST2.Ibill_no, 
            (
                Select ST1.PoNo + ',' AS [text()]
                From dbo.items_sold ST1
                Where ST1.Ibill_no = ST2.Ibill_no
                ORDER BY ST1.Ibill_no
                For XML PATH ('')
            ) [PoNo],
            (
                Select cast(ST1.podate as char(11)) + ',' AS [text()]
                From dbo.items_sold ST1
                Where ST1.Ibill_no = ST2.Ibill_no
                ORDER BY ST1.Ibill_no
                For XML PATH ('')
            ) [PoDt]
        From dbo.items_sold ST2
    ) [Main]
END

F-ES Sitecore

У нас нет доступа к вашим данным или вашей схеме, поэтому мы не знаем, какие типы ваших полей. Я собираюсь предположить, что вы храните свои даты в виде текста, и это ваша главная проблема...храните даты в виде дат, иначе у вас возникнут эти проблемы. Если вы загуглите, как преобразовать varchar в дату, я уверен, что вы найдете решение.

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

NIRMAL90

я поставил нужные как относится к типу данных smalldatetime

2 Ответов

Рейтинг:
6

Wendelius

Похоже, что вы пытаетесь отформатировать дату на сервере базы данных. Я бы посоветовал не делать этого. Вместо этого извлеките значение даты на клиентскую сторону в качестве даты и обработайте форматирование там. Таким образом, вы можете легко убедиться, что используется правильный формат.

В целом SQL предназначен для извлечения данных и манипулирования ими, и это плохой кандидат для форматирования. Другие языки и инструменты предназначены для отображения данных.


Рейтинг:
13

Maciej Los

Дата есть дата и ничего больше! Из-за тип поля[^] и несколько параметров[^] формат даты может отличаться.

Чтобы отобразить дату в пользовательском формате, пожалуйста, проверьте это:
Форматы даты и времени[^]
Приведение и преобразование (Transact-SQL)[^]
Формат (Transact-SQL)[^]


Karthik_Mahalingam

5

Maciej Los

Спасибо, Картик.