﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / SQL Server / Базы данных  / Дата как параметр к ХП в SQL2005Express / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sat, 22 Nov 2008 03:23:46 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Дата как параметр к ХП в SQL2005Express</title><link>http://www.relib.com/forums/Topic910309-22-1.aspx</link><description>Да, посмотрел я этот класс - вполне удобно.&lt;BR&gt;У мня что-то похожее, причем идентично и на PHP и на .NET, но не позволяет использовать параметры - только чистый текстовый sql-запрос:&lt;P&gt;[code]&lt;/P&gt;&lt;P&gt;&amp;lt;%&lt;BR&gt;if(sql_exec("select * from t_news")){&lt;BR&gt; if(!rs_full()){&lt;BR&gt;  %&amp;gt;Нет записей&amp;lt;%&lt;BR&gt; }else{&lt;BR&gt;  while(rs_next()){&lt;BR&gt;   %&amp;gt;&amp;lt;%=rs("name")%&amp;gt;&amp;lt;%&lt;BR&gt;  };&lt;BR&gt; };&lt;BR&gt;};&lt;BR&gt;%&amp;gt;&lt;BR&gt;&lt;/P&gt;&lt;P&gt;[/code]&lt;/P&gt;&lt;P&gt;Отличия на PHP - вместо % идет ?&lt;P&gt;Надо будет поболее изучить SqlHelper  и взять из него полезные возможности.&lt;P&gt;(и все-таки использовать параметры у процедур неудобно IMHO)</description><pubDate>Fri, 02 Feb 2007 18:16:52 GMT</pubDate><dc:creator>lurii</dc:creator></item><item><title>RE: Дата как параметр к ХП в SQL2005Express</title><link>http://www.relib.com/forums/Topic910309-22-1.aspx</link><description>[quote][b]lurii (02.02.2007)[/b][hr]Только не SET DATETIME dmy , а SET DATEFORMAT dmy - ничего не дает.[/quote] &lt;P&gt;Упс. Точно. Ошибся я.&lt;BR&gt;&lt;BR&gt;[quote][b]lurii (02.02.2007)[/b][hr]Вывод: храните дату разделив ее на разные столбцы - отдельно год, месяц и день!&lt;BR&gt;(так и сделано в половине таблиц, а вот во второй в одном поле - с ним и проблемы)[/quote]&lt;/P&gt;&lt;P&gt;Тут я с тобой не согласен. Лучше все таки хранить дату как тип "дата". Это более эффективно с точки зрения объема данных и дает возможность использования функций работы с датой (datediff, например). И опять же такой проблемы у тебя бы не было если ты передавал дату как параметр. Я помню что ты говорил про ограничения движка, просто напоминаю в чем реальный корень проблемы. Советую посмотреть исходный текст класса SqlHelper который я выкладывал &lt;A href=http://www.relib.com/forums/FindPost901098.aspx&gt;в этой теме&lt;/A&gt;. Я им постоянно пользуюсь.</description><pubDate>Fri, 02 Feb 2007 14:30:21 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Дата как параметр к ХП в SQL2005Express</title><link>http://www.relib.com/forums/Topic910309-22-1.aspx</link><description>Только не SET DATETIME dmy , а SET DATEFORMAT dmy - ничего не дает.&lt;br&gt;Поигрался с последовательностью и пришел к локальному выводу: 16.03.2005 04:01:17 - дд.мм.гггг подошло, странно ...&lt;br&gt;Посмотрел данные за прошлые года - там вообще было: гггг.мм.дд, потом мм.дд.гггг и только сейчас как на родине - дд.мм.гггг подошло.&lt;br&gt;&lt;br&gt;Вывод: храните дату разделив ее на разные столбцы - отдельно год, месяц и день!&lt;br&gt;(так и сделано в половине таблиц, а вот во второй в одном поле - с ним и проблемы)</description><pubDate>Fri, 02 Feb 2007 14:05:38 GMT</pubDate><dc:creator>lurii</dc:creator></item><item><title>RE: Дата как параметр к ХП в SQL2005Express</title><link>http://www.relib.com/forums/Topic910309-22-1.aspx</link><description>Тогда попробуй перед вызовом процедуры добавить команду SET DATETIME dmy. То есть полный текст команды будет: cmd.CommandText="SET DATETIME dmy; EXEC sp_name @status=0,@dat='03.16.2005 04:01:17'"&lt;/P&gt;&lt;P&gt;Также в T-SQL существует переноимсый формат даты, но он распространяется только на дату без времени. Это строка вида 'yyyymmdd'. Для универсальной передачи даты можно использовать функцию CONVERT передавая ей нужный формат даты третьим параметром. Подробности смотри в Books online.</description><pubDate>Fri, 02 Feb 2007 12:50:44 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Дата как параметр к ХП в SQL2005Express</title><link>http://www.relib.com/forums/Topic910309-22-1.aspx</link><description>Я в курсе про параметры, но это усложняет процесс и я привык использовать просто текстовый запрос.&lt;br&gt;У подобных процедур 20 параметров и использовать параметры будет очень непросто.&lt;br&gt;Да и вся система написана таким образом что параметры не катят - есть метод sql_exec(string sql), который просто выполняет пришедший запрос.&lt;br&gt;Притом что сайтик был написан еще под использование MSSQL7 - переписывать все это дело гиморно.&lt;br&gt;Сначала был переход на 2000, а сейчас на 2005, + с ASP переводил на ASP.NET.&lt;br&gt;&lt;br&gt;Кто-нибудь знает универсальный формат даты для ХП?</description><pubDate>Fri, 02 Feb 2007 12:20:53 GMT</pubDate><dc:creator>lurii</dc:creator></item><item><title>RE: Дата как параметр к ХП в SQL2005Express</title><link>http://www.relib.com/forums/Topic910309-22-1.aspx</link><description>Чтобы таких проблем не возникало надо использовать параметры - &lt;A href="http://quickstarts.asp.net/QuickStartv20/howto/doc/adoplus/ExecuteCommand.aspx"&gt;http://quickstarts.asp.net/QuickStartv20/howto/doc/adoplus/ExecuteCommand.aspx&lt;/A&gt;, а не передавать аргументы в строке вызова.</description><pubDate>Fri, 02 Feb 2007 09:49:03 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>Дата как параметр к ХП в SQL2005Express</title><link>http://www.relib.com/forums/Topic910309-22-1.aspx</link><description>Есть ХП: sp_name @status=0,@dat='03.16.2005 04:01:17'&lt;br&gt;Прекрасно работала в 2000, перешел на 2005Expr - выдает:&lt;br&gt;"Ошибка при преобразовании типа данных varchar к datetime."&lt;br&gt;Вызов идет из ASP.NET(2) через cmd.CommandText="sp_name @status=0,@dat='03.16.2005 04:01:17'";dr=cmd.ExecuteReader();&lt;br&gt;Странно что это только локально не работает, на хостинге все прекрасно пашет ...&lt;br&gt;&lt;br&gt;Итак: в каком формате надо вносить дату в параметр?&lt;br&gt;(дд.мм.ггггг или мм.дд.гггг или ггггг.мм.ддд или еще как ...)&lt;br&gt;&lt;br&gt;Или это зависит сугубо от локали?(latin1_general или cyrillic)</description><pubDate>Thu, 01 Feb 2007 22:45:22 GMT</pubDate><dc:creator>lurii</dc:creator></item></channel></rss>