baxtalo
asked on
SQL Query
SQL.txtI wonder if there is a more effective way to set the values of the '1900-01-01 00:00:00.000' records to NULL. Can this be resolved with one single query?
Thanks for your help.
Thanks for your help.
I think you will find that even if you set those values to NULL, T-SQL will return '1900-01-01 00:00:00.000' as a default value. In all the postings I've seen, you can't get it to return NULL, just the default date of '1900-01-01 00:00:00.000'.
Dave, I know at least in ms sql I set dates to NULL if they are not available at time of creating the record (such as a birthdate) and they remain null. However, when displaying the record for editing or searching, I set the sql to something like
ISNULL(CAST(BirthDate AS varchar(20)), '') or ISNULL(CAST(BirthDate AS varchar(20)), 'No Date Avail')
ISNULL(CAST(BirthDate AS varchar(20)), '') or ISNULL(CAST(BirthDate AS varchar(20)), 'No Date Avail')
It's a two part question. If you set it to NULL on INSERT, what does a basic SELECT return? And if it is actually NULL as opposed to a default value, how do you detect that?
ASKER
This is not a one time thing. I load the schedules from Excel to SQL Server, and at that point all days off show as NULL. But whenever users updated the records the NULLs change to '1900-01-01 00:00:00.000'. When I'm paging the records I use the following HTML to display e.g. the Tuesday column:
<%If IsNull(rs("TueIn")) or rs("TueIn")="" Then %>
<td align="center" colspan="2" bgcolor="#ffffff">
<font color="#cc0000" style="font-size:80%">TUE< /font></td ><%else%>
<td align="center"><small><sma ll><%=Form atDateTime (rs("TueIn "),vbshort time)%></s mall></sma ll></td>
<td align="center"><small><sma ll><%=Form atDateTime (rs("TueOu t"),vbshor ttime)%></ small></sm all></td>< %end if%>
When the TueIn record is NULL the letters 'TUE' are displayed but after a record is updated the NULL in the database becomes '1900-01-01 00:00:00.000' and instead of 'TUE' the record shows 00:00 for both TueIn and TueOut. That's why I added the Update SQL attached. Whenever the user updates a record the same submission resets the values to NULLs. I was just wondering if there is a better way to do it. Maybe by doing something with the if statement in the HTML. I tried ***or rs("TueIn")="1900-01-01 00:00:00.000"*** but it didn't work. Your previous answer was useful, I just didn't know how to insert it in my HTML to also display the Out time in the same column.
<%If IsNull(rs("TueIn")) or rs("TueIn")="" Then %>
<td align="center" colspan="2" bgcolor="#ffffff">
<font color="#cc0000" style="font-size:80%">TUE<
<td align="center"><small><sma
<td align="center"><small><sma
When the TueIn record is NULL the letters 'TUE' are displayed but after a record is updated the NULL in the database becomes '1900-01-01 00:00:00.000' and instead of 'TUE' the record shows 00:00 for both TueIn and TueOut. That's why I added the Update SQL attached. Whenever the user updates a record the same submission resets the values to NULLs. I was just wondering if there is a better way to do it. Maybe by doing something with the if statement in the HTML. I tried ***or rs("TueIn")="1900-01-01 00:00:00.000"*** but it didn't work. Your previous answer was useful, I just didn't know how to insert it in my HTML to also display the Out time in the same column.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you so much!
On another note for efficiency, why do you have different fields for each day of the week? Couldn't you just use one date, then use vb or sql to extract or search based on the weekday? Check out the weekday and weekdayname functions http://www.w3schools.com/v bscript/vb script_ref _functions .asp#date
<%
newDate="NULL"
If request("date")<>"" then
if isdate(request("date") then
newDate=request("date")
end if
end if
sql="insert ..... datefield='"&newDate&"'"
%>