Вы можете попробовать это
Select ISNULL(Cast(DateSent as Varchar(20)), 'N/A')
Ниже приводится один пример:
declare @DateSent date = getdate()
Select ISNULL(Cast(@DateSent as Varchar(20)), 'N/A')
Для нулевых значений, как показано ниже.
declare @DateSent1 date = NULL
Select ISNULL(Cast(@DateSent1 as Varchar(20)), 'N/A')
Если у Вас нет опечатки, проблема может быть в этой строке, где Вы присваиваете дескриптор файла selffp
нет self.fp
:
selffp=file("detailing.dat","rb")
Если это - опечатка, и Ваш код на самом деле открывает файл для self.fp
, затем можно хотеть проверить, что файл на самом деле имеет содержание (т.е.: то, что предыдущий рассол работал)... ошибка предполагает, что файл пуст.
Править: В комментариях к этому ответу, S. У Lott есть хорошая сводка того, почему опечатка генерировала ошибку, Вы видели, что я вставляю здесь для полноты ответа: "selffp будет неиспользованным открытым файлом, и self.fp (старый закрытый файл) будет использоваться для загрузки".
Вот версия, которую я рекомендовал бы использовать:
def database(self):
databasename=""
host=""
user=""
password=""
try:
self.fp=open("detailing.dat","rb")
except IOError:
with open("detailing.dat", "wb") as fp:
pickle.dump([databasename,host,user,password],fp,-1)
self.fp=open("detailing.dat","rb")
[databasename,host,user,password]=pickle.load(self.fp)
return
Как был указан, на self.fp была опечатка. Но вот несколько других вещей, что я замечаю, что это может вызвать проблемы.
В первую очередь, Вы не должны использовать конструктора файла непосредственно. Необходимо вместо этого использовать встроенную открытую функцию.
Во-вторых, необходимо постараться не называть близкий метод файла вне наконец блок. В этом случае я использовал Python 2.6's с блоком. Можно использовать это в Python 2.5 со следующей командой:
from __future__ import with_statement
Это будет препятствовать тому, чтобы файл застрял открытый, если исключение будет выдано где-нибудь (поскольку это закроет файл, когда с блоком выйдется). Хотя это не причина Вашей проблемы, это - важная вещь помнить, потому что, если один из методов объекта файла выдает исключение, файл будет считаться открытый в sys.traceback неограниченно долго.
(обратите внимание, что необходимо, вероятно, принять ответ Jarret Hardie, хотя, он поймал ошибку :-))